Index: libcfa/prelude/builtins.c
===================================================================
--- libcfa/prelude/builtins.c	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ libcfa/prelude/builtins.c	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -10,6 +10,6 @@
 // Created On       : Fri Jul 21 16:21:03 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jul 13 21:10:02 2020
-// Update Count     : 109
+// Last Modified On : Fri Oct  9 18:26:19 2020
+// Update Count     : 110
 //
 
@@ -94,4 +94,5 @@
 // universal typed pointer constant
 static inline forall( dtype DT ) DT * intptr( uintptr_t addr ) { return (DT *)addr; }
+static inline forall( ftype FT ) FT * intptr( uintptr_t addr ) { return (FT *)addr; }
 
 #if defined(__SIZEOF_INT128__)
Index: libcfa/src/concurrency/io.cfa
===================================================================
--- libcfa/src/concurrency/io.cfa	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ libcfa/src/concurrency/io.cfa	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -134,5 +134,5 @@
 		int ret = 0;
 		if( need_sys_to_submit || need_sys_to_complete ) {
-			ret = syscall( __NR_io_uring_enter, ring.fd, to_submit, 0, flags, 0p, _NSIG / 8);
+			ret = syscall( __NR_io_uring_enter, ring.fd, to_submit, 0, flags, (sigset_t *)0p, _NSIG / 8);
 			if( ret < 0 ) {
 				switch((int)errno) {
Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ src/Parser/DeclarationNode.cc	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 12:34:05 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jun  9 20:26:55 2020
-// Update Count     : 1134
+// Last Modified On : Thu Oct  8 08:03:38 2020
+// Update Count     : 1135
 //
 
@@ -1016,5 +1016,5 @@
 			if ( DeclarationWithType * dwt = dynamic_cast< DeclarationWithType * >( decl ) ) {
 				dwt->location = cur->location;
-				* out++ = dwt;
+				*out++ = dwt;
 			} else if ( StructDecl * agg = dynamic_cast< StructDecl * >( decl ) ) {
 				// e.g., int foo(struct S) {}
@@ -1022,5 +1022,5 @@
 				auto obj = new ObjectDecl( "", Type::StorageClasses(), linkage, nullptr, inst, nullptr );
 				obj->location = cur->location;
-				* out++ = obj;
+				*out++ = obj;
 				delete agg;
 			} else if ( UnionDecl * agg = dynamic_cast< UnionDecl * >( decl ) ) {
@@ -1029,5 +1029,5 @@
 				auto obj = new ObjectDecl( "", Type::StorageClasses(), linkage, nullptr, inst, nullptr );
 				obj->location = cur->location;
-				* out++ = obj;
+				*out++ = obj;
 			} else if ( EnumDecl * agg = dynamic_cast< EnumDecl * >( decl ) ) {
 				// e.g., int foo(enum E) {}
@@ -1035,5 +1035,5 @@
 				auto obj = new ObjectDecl( "", Type::StorageClasses(), linkage, nullptr, inst, nullptr );
 				obj->location = cur->location;
-				* out++ = obj;
+				*out++ = obj;
 			} // if
 		} catch( SemanticErrorException & e ) {
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ src/Parser/parser.yy	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Oct  6 18:24:18 2020
-// Update Count     : 4610
+// Last Modified On : Fri Oct  9 18:09:09 2020
+// Update Count     : 4614
 //
 
@@ -204,8 +204,8 @@
 			return forCtrl( type, new string( identifier->name ), start, compop, comp, inc );
 		} else {
-			SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); return nullptr;
+			SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed." ); return nullptr;
 		} // if
 	} else {
-		SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed" ); return nullptr;
+		SemanticError( yylloc, "Expression disallowed. Only loop-index name allowed." ); return nullptr;
 	} // if
 } // forCtrl
@@ -2412,5 +2412,5 @@
 // Overloading: function, data, and operator identifiers may be overloaded.
 //
-// Type declarations: "type" is used to generate new types for declaring objects. Similarly, "dtype" is used for object
+// Type declarations: "otype" is used to generate new types for declaring objects. Similarly, "dtype" is used for object
 //     and incomplete types, and "ftype" is used for function types. Type declarations with initializers provide
 //     definitions of new types. Type declarations with storage class "extern" provide opaque types.
@@ -2441,5 +2441,5 @@
 	type_class identifier_or_type_name
 		{ typedefTable.addToScope( *$2, TYPEDEFname, "9" ); }
-	  type_initializer_opt assertion_list_opt
+	type_initializer_opt assertion_list_opt
 		{ $$ = DeclarationNode::newTypeParam( $1, $2 )->addTypeInitializer( $4 )->addAssertions( $5 ); }
 	| type_specifier identifier_parameter_declarator
@@ -2468,5 +2468,5 @@
 	assertion
 	| assertion_list assertion
-		{ $$ = $1 ? $1->appendList( $2 ) : $2; }
+		{ $$ = $1->appendList( $2 ); }
 	;
 
Index: src/SynTree/TypeDecl.cc
===================================================================
--- src/SynTree/TypeDecl.cc	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ src/SynTree/TypeDecl.cc	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Dec 13 15:26:14 2019
-// Update Count     : 21
+// Last Modified On : Thu Oct  8 18:18:55 2020
+// Update Count     : 22
 //
 
@@ -21,5 +21,6 @@
 #include "Type.h"            // for Type, Type::StorageClasses
 
-TypeDecl::TypeDecl( const std::string & name, Type::StorageClasses scs, Type * type, Kind kind, bool sized, Type * init ) : Parent( name, scs, type ), kind( kind ), sized( kind == Ttype || sized ), init( init ) {
+TypeDecl::TypeDecl( const std::string & name, Type::StorageClasses scs, Type * type, Kind kind, bool sized, Type * init ) :
+	Parent( name, scs, type ), kind( kind ), sized( kind == Ttype || sized ), init( init ) {
 }
 
Index: src/main.cc
===================================================================
--- src/main.cc	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ src/main.cc	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -9,7 +9,7 @@
 // Author           : Peter Buhr and Rob Schluntz
 // Created On       : Fri May 15 23:12:02 2015
-// Last Modified By : Andrew Beach
-// Last Modified On : Tue May 19 12:03:00 2020
-// Update Count     : 634
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Oct  8 18:17:46 2020
+// Update Count     : 637
 //
 
@@ -451,5 +451,5 @@
 
 
-static const char optstring[] = ":c:ghlLmNnpdP:S:twW:D:";
+static const char optstring[] = ":c:ghlLmNnpdOAP:S:twW:D:";
 
 enum { PreludeDir = 128 };
@@ -478,23 +478,23 @@
 
 static const char * description[] = {
-	"diagnostic color: never, always, or auto.",          // -c
-	"wait for gdb to attach",                             // -g
-	"print help message",                                 // -h
-	"generate libcfa.c",                                  // -l
-	"generate line marks",                                // -L
-	"do not replace main",                                // -m
-	"do not generate line marks",                         // -N
-	"do not read prelude",                                // -n
+	"diagnostic color: never, always, or auto.",		// -c
+	"wait for gdb to attach",							// -g
+	"print help message",								// -h
+	"generate libcfa.c",								// -l
+	"generate line marks",								// -L
+	"do not replace main",								// -m
+	"do not generate line marks",						// -N
+	"do not read prelude",								// -n
 	"generate prototypes for prelude functions",		// -p
-	"don't print output that isn't deterministic",        // -d
-	"Use the old-ast",                                    // -O
-	"Use the new-ast",                                    // -A
-	"print",                                              // -P
+	"only print deterministic output",                  // -d
+	"Use the old-ast",									// -O
+	"Use the new-ast",									// -A
+	"print",											// -P
 	"<directory> prelude directory for debug/nodebug",	// no flag
 	"<option-list> enable profiling information:\n          counters,heap,time,all,none", // -S
-	"building cfa standard lib",                          // -t
-	"",                                                   // -w
-	"",                                                   // -W
-	"",                                                   // -D
+	"building cfa standard lib",						// -t
+	"",													// -w
+	"",													// -W
+	"",													// -D
 }; // description
 
Index: tests/.expect/init1-ERROR.txt
===================================================================
--- tests/.expect/init1-ERROR.txt	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
+++ tests/.expect/init1-ERROR.txt	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -0,0 +1,47 @@
+error: No reasonable alternatives for expression Untyped Init Expression
+  Name: rx  InitAlternative: reference to signed int
+error: No reasonable alternatives for expression Untyped Init Expression
+  Name: px  InitAlternative: pointer to signed int
+error: No reasonable alternatives for expression Untyped Init Expression
+  Name: crx  InitAlternative: reference to float
+error: No reasonable alternatives for expression Untyped Init Expression
+  Name: cpx  InitAlternative: pointer to float
+init1.cfa:104:1 error: No reasonable alternatives for expression Generated Cast of:
+  Name: rx
+... to:
+  reference to signed int
+init1.cfa:107:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: ?{}
+...to:
+  Generated Cast of:
+    Variable Expression: _retval_f_py: pointer to signed int
+  ... to:
+    reference to pointer to signed int
+  Name: px
+
+init1.cfa:114:1 error: No reasonable alternatives for expression Generated Cast of:
+  Name: crx
+... to:
+  reference to float
+init1.cfa:117:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: ?{}
+...to:
+  Generated Cast of:
+    Variable Expression: _retval_f_py2: pointer to float
+  ... to:
+    reference to pointer to float
+  Name: cpx
+
+init1.cfa:124:1 error: No reasonable alternatives for expression Generated Cast of:
+  Name: s
+... to:
+  reference to instance of type T (not function type)
+init1.cfa:128:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: ?{}
+...to:
+  Generated Cast of:
+    Variable Expression: _retval_anycvt: pointer to instance of type T (not function type)
+  ... to:
+    reference to pointer to instance of type T (not function type)
+  Name: s
+
Index: tests/.expect/init1.txt
===================================================================
--- tests/.expect/init1.txt	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ tests/.expect/init1.txt	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -1,47 +1,2 @@
-error: No reasonable alternatives for expression Untyped Init Expression
-  Name: rx  InitAlternative: reference to signed int
-error: No reasonable alternatives for expression Untyped Init Expression
-  Name: px  InitAlternative: pointer to signed int
-error: No reasonable alternatives for expression Untyped Init Expression
-  Name: crx  InitAlternative: reference to float
-error: No reasonable alternatives for expression Untyped Init Expression
-  Name: cpx  InitAlternative: pointer to float
-init1.cfa:94:1 error: No reasonable alternatives for expression Generated Cast of:
-  Name: rx
-... to:
-  reference to signed int
-init1.cfa:97:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: ?{}
-...to:
-  Generated Cast of:
-    Variable Expression: _retval_f_py: pointer to signed int
-  ... to:
-    reference to pointer to signed int
-  Name: px
-
-init1.cfa:104:1 error: No reasonable alternatives for expression Generated Cast of:
-  Name: crx
-... to:
-  reference to float
-init1.cfa:107:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: ?{}
-...to:
-  Generated Cast of:
-    Variable Expression: _retval_f_py2: pointer to float
-  ... to:
-    reference to pointer to float
-  Name: cpx
-
-init1.cfa:114:1 error: No reasonable alternatives for expression Generated Cast of:
-  Name: s
-... to:
-  reference to instance of type T (not function type)
-init1.cfa:118:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: ?{}
-...to:
-  Generated Cast of:
-    Variable Expression: _retval_anycvt: pointer to instance of type T (not function type)
-  ... to:
-    reference to pointer to instance of type T (not function type)
-  Name: s
-
+init1.cfa: In function '_X4mainFi___1':
+init1.cfa:136:9: note: #pragma message: Compiled
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ tests/Makefile.am	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -11,6 +11,6 @@
 ## Created On       : Sun May 31 09:08:15 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Sun Sep 27 19:01:41 2020
-## Update Count     : 84
+## Last Modified On : Fri Oct  9 23:13:07 2020
+## Update Count     : 86
 ###############################################################################
 
@@ -141,5 +141,5 @@
 
 SYNTAX_ONLY_CODE = expression typedefRedef variableDeclarator switch numericConstants identFuncDeclarator forall \
-	limits nested-types stdincludes cast labelledExit array builtins/sync warnings/self-assignment
+	init1 limits nested-types stdincludes cast labelledExit array builtins/sync warnings/self-assignment
 $(SYNTAX_ONLY_CODE): % : %.cfa $(CFACCBIN)
 	$(CFACOMPILE_SYNTAX)
@@ -149,4 +149,8 @@
 # use custom target since they require a custom define *and* have a name that doesn't match the file
 alloc-ERROR : alloc.cfa $(CFACCBIN)
+	$(CFACOMPILE_SYNTAX) -DERR1
+	-cp $(test) $(abspath ${@})
+
+init1-ERROR : init1.cfa $(CFACCBIN)
 	$(CFACOMPILE_SYNTAX) -DERR1
 	-cp $(test) $(abspath ${@})
Index: tests/alloc.cfa
===================================================================
--- tests/alloc.cfa	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ tests/alloc.cfa	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -10,6 +10,6 @@
 // Created On       : Wed Feb  3 07:56:22 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Aug 14 16:59:59 2020
-// Update Count     : 430
+// Last Modified On : Fri Oct  9 23:03:11 2020
+// Update Count     : 431
 //
 
@@ -362,5 +362,5 @@
 	ip = memset( stp, 10 );
 	ip = memcpy( &st1, &st );
-#endif
+#endif // ERR1
 } // main
 
Index: tests/errors/.expect/completeType.x64.txt
===================================================================
--- tests/errors/.expect/completeType.x64.txt	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ tests/errors/.expect/completeType.x64.txt	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -132,8 +132,8 @@
 ?=?: pointer to function
         ... with parameters
-          reference to instance of type _109_0_T (not function type)
-          instance of type _109_0_T (not function type)
+          reference to instance of type _110_0_T (not function type)
+          instance of type _110_0_T (not function type)
         ... returning
-          _retval__operator_assign: instance of type _109_0_T (not function type)
+          _retval__operator_assign: instance of type _110_0_T (not function type)
           ... with attributes:
             Attribute with name: unused
Index: tests/errors/.expect/completeType.x86.txt
===================================================================
--- tests/errors/.expect/completeType.x86.txt	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ tests/errors/.expect/completeType.x86.txt	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -132,8 +132,8 @@
 ?=?: pointer to function
         ... with parameters
-          reference to instance of type _108_0_T (not function type)
-          instance of type _108_0_T (not function type)
+          reference to instance of type _109_0_T (not function type)
+          instance of type _109_0_T (not function type)
         ... returning
-          _retval__operator_assign: instance of type _108_0_T (not function type)
+          _retval__operator_assign: instance of type _109_0_T (not function type)
           ... with attributes:
             Attribute with name: unused
Index: tests/init1.cfa
===================================================================
--- tests/init1.cfa	(revision 290553a54a5500f937216fcdee0d5dab8d5826bc)
+++ tests/init1.cfa	(revision 0b18db76df6d17b47d855d5c56769c62d063e6ea)
@@ -9,7 +9,7 @@
 // Author           : Michael Brooks
 // Created On       : Thu Jul 16 22:00:00 2020
-// Last Modified By : Michael Brooks
-// Last Modified On : Thu Jul 16 22:00:00 2020
-// Update Count     : 1
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sun Oct 11 10:26:50 2020
+// Update Count     : 8
 //
 
@@ -41,8 +41,16 @@
     const float * cpx2 = cpx;
 
+    // FIX ME: Code gen not producing correct cast.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wincompatible-pointer-types"
+    int (* fp)( int ) = 0p;
+    fp = 0p;
+#pragma GCC diagnostic pop
+
     //
     // unsound initializations
     //
 
+    #ifdef ERR1
     // mismatched referenced type
     int & ry = rx;
@@ -52,4 +60,5 @@
     float & ry2 = crx;
     float * py2 = cpx;
+    #endif // ERR1
 }
 
@@ -90,4 +99,5 @@
 //
 
+#ifdef ERR1
 int & f_ry() { 
     float & rx = *0p;
@@ -119,2 +129,7 @@
     return s;               // mismatched referenced type
 }
+#endif // ERR1
+
+int main() {
+    #pragma message( "Compiled" )			// force non-empty .expect file
+}
