Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision 6ea0408d4089b335ca6f87d7299630806c055100)
+++ src/Parser/TypeData.cc	(revision 62cd62193cd4f35adebdbded46254c2bfa6de20a)
@@ -31,5 +31,5 @@
 using namespace std;
 
-TypeData::TypeData( Kind k ) : kind( k ), base( nullptr ), forall( nullptr ) /*, PTR1( (void*)(0xdeadbeefdeadbeef)), PTR2( (void*)(0xdeadbeefdeadbeef) ) */ {
+TypeData::TypeData( Kind k ) : location( yylloc ), kind( k ), base( nullptr ), forall( nullptr ) /*, PTR1( (void*)(0xdeadbeefdeadbeef)), PTR2( (void*)(0xdeadbeefdeadbeef) ) */ {
 	switch ( kind ) {
 	  case Unknown:
@@ -800,5 +800,5 @@
 	assert( td->base );
 	if ( td->symbolic.isTypedef ) {
-		ret = new TypedefDecl( name, scs, typebuild( td->base ), linkage );
+		ret = new TypedefDecl( name, td->location, scs, typebuild( td->base ), linkage );
 	} else {
 		ret = new TypeDecl( name, scs, typebuild( td->base ), TypeDecl::Dtype, true );
Index: src/Parser/TypeData.h
===================================================================
--- src/Parser/TypeData.h	(revision 6ea0408d4089b335ca6f87d7299630806c055100)
+++ src/Parser/TypeData.h	(revision 62cd62193cd4f35adebdbded46254c2bfa6de20a)
@@ -76,4 +76,6 @@
 	};
 
+	CodeLocation location;
+
 	Kind kind;
 	TypeData * base;
Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision 6ea0408d4089b335ca6f87d7299630806c055100)
+++ src/SymTab/Validate.cc	(revision 62cd62193cd4f35adebdbded46254c2bfa6de20a)
@@ -857,5 +857,5 @@
 				type = new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() );
 			} // if
-			TypedefDeclPtr tyDecl( new TypedefDecl( aggDecl->get_name(), Type::StorageClasses(), type, aggDecl->get_linkage() ) );
+			TypedefDeclPtr tyDecl( new TypedefDecl( aggDecl->get_name(), aggDecl->location, Type::StorageClasses(), type, aggDecl->get_linkage() ) );
 			typedefNames[ aggDecl->get_name() ] = std::make_pair( std::move( tyDecl ), scopeLevel );
 		} // if
Index: src/SynTree/Declaration.h
===================================================================
--- src/SynTree/Declaration.h	(revision 6ea0408d4089b335ca6f87d7299630806c055100)
+++ src/SynTree/Declaration.h	(revision 62cd62193cd4f35adebdbded46254c2bfa6de20a)
@@ -245,5 +245,7 @@
 	typedef NamedTypeDecl Parent;
   public:
-	TypedefDecl( const std::string &name, Type::StorageClasses scs, Type *type, LinkageSpec::Spec spec = LinkageSpec::Cforall ) : Parent( name, scs, type ) { set_linkage( spec ); }
+	TypedefDecl( const std::string &name, CodeLocation location, Type::StorageClasses scs, Type *type, LinkageSpec::Spec spec = LinkageSpec::Cforall )
+		: Parent( name, scs, type ) { set_linkage( spec ); this->location = location; }
+
 	TypedefDecl( const TypedefDecl &other ) : Parent( other ) {}
 
Index: src/libcfa/concurrency/monitor.c
===================================================================
--- src/libcfa/concurrency/monitor.c	(revision 6ea0408d4089b335ca6f87d7299630806c055100)
+++ src/libcfa/concurrency/monitor.c	(revision 62cd62193cd4f35adebdbded46254c2bfa6de20a)
@@ -10,6 +10,6 @@
 // Created On       : Thd Feb 23 12:27:26 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb  8 16:12:20 2018
-// Update Count     : 4
+// Last Modified On : Fri Feb 16 14:49:53 2018
+// Update Count     : 5
 //
 
@@ -427,5 +427,5 @@
 		thread_desc * this_thrd = this_thread;
 		if ( this.monitor_count != this_thrd->monitors.size ) {
-			abort( "Signal on condition %p made with different number of monitor(s), expected %li got %li", &this, this.monitor_count, this_thrd->monitors.size );
+			abort( "Signal on condition %p made with different number of monitor(s), expected %zi got %zi", &this, this.monitor_count, this_thrd->monitors.size );
 		}
 
Index: src/main.cc
===================================================================
--- src/main.cc	(revision 6ea0408d4089b335ca6f87d7299630806c055100)
+++ src/main.cc	(revision 62cd62193cd4f35adebdbded46254c2bfa6de20a)
@@ -282,4 +282,6 @@
 		} // if
 
+		CodeTools::fillLocations( translationUnit );
+
 		OPTPRINT( "resolve" )
 		ResolvExpr::resolve( translationUnit );
Index: src/tests/raii/.expect/dtor-early-exit-ERR2.txt
===================================================================
--- src/tests/raii/.expect/dtor-early-exit-ERR2.txt	(revision 6ea0408d4089b335ca6f87d7299630806c055100)
+++ src/tests/raii/.expect/dtor-early-exit-ERR2.txt	(revision 62cd62193cd4f35adebdbded46254c2bfa6de20a)
@@ -1,3 +1,3 @@
-raii/dtor-early-exit.c:220:1 error: jump to label 'L2' crosses initialization of y Branch (Goto)
+raii/dtor-early-exit.c:217:1 error: jump to label 'L2' crosses initialization of y Branch (Goto)
   with target: L2
   with original target: L2
