Index: src/SymTab/Autogen.h
===================================================================
--- src/SymTab/Autogen.h	(revision 40e636a3e71c878c7a10447ffe19e38fab7a8677)
+++ src/SymTab/Autogen.h	(revision 6cf27a070551542d34340180263c714585975c85)
@@ -144,15 +144,17 @@
 		genCall( srcParam, dstParam, fname, back_inserter( stmts ), obj->get_type(), forward );
 
-		// currently genCall should produce only one element, but if that changes then the next line needs to be updated to grab the statement which contains the call
-		assert( stmts.size() == 1 );
-		Statement * callStmt = stmts.front();
-		if ( (fname == "?{}" || fname == "^?{}") && ( !obj || ( obj && obj->get_bitfieldWidth() == NULL ) ) ) {
-			// implicitly generated ctor/dtor calls should be wrapped
-			// so that later passes are aware they were generated.
-			// xxx - don't mark as an implicit ctor/dtor if obj is a bitfield,
-			// because this causes the address to be taken at codegen, which is illegal in C.
-			callStmt = new ImplicitCtorDtorStmt( callStmt );
-		}
-		*out++ = callStmt;
+		// currently genCall should produce at most one element, but if that changes then the next line needs to be updated to grab the statement which contains the call
+		assert( stmts.size() <= 1 );
+    if ( stmts.size() == 1 ) {
+  		Statement * callStmt = stmts.front();
+  		if ( (fname == "?{}" || fname == "^?{}") && ( !obj || ( obj && obj->get_bitfieldWidth() == NULL ) ) ) {
+  			// implicitly generated ctor/dtor calls should be wrapped
+  			// so that later passes are aware they were generated.
+  			// xxx - don't mark as an implicit ctor/dtor if obj is a bitfield,
+  			// because this causes the address to be taken at codegen, which is illegal in C.
+  			callStmt = new ImplicitCtorDtorStmt( callStmt );
+  		}
+  		*out++ = callStmt;
+    }
 	}
 } // namespace SymTab
