Index: src/SymTab/Autogen.cc
===================================================================
--- src/SymTab/Autogen.cc	(revision 4d3ca1d868f76bdc3c138e232ca019fd019466eb)
+++ src/SymTab/Autogen.cc	(revision a0641748b02f25fc6f7860a202e357f3403fa4a3)
@@ -289,5 +289,17 @@
 		for ( ; member != end; ++member ) {
 			if ( DeclarationWithType * field = dynamic_cast<DeclarationWithType*>( *member ) ) {
-				if ( parameter != params.end() ) {
+				if ( isUnnamedBitfield( dynamic_cast< ObjectDecl * > ( field ) ) ) {
+					// don't make a function whose parameter is an unnamed bitfield
+					continue;
+				} else if ( field->get_name() == "" ) {
+					// don't assign to anonymous members
+					// xxx - this is a temporary fix. Anonymous members tie into
+					// our inheritance model. I think the correct way to handle this is to
+					// cast the structure to the type of the member and let the resolver
+					// figure out whether it's valid and have a pass afterwards that fixes
+					// the assignment to use pointer arithmetic with the offset of the
+					// member, much like how generic type members are handled.
+					continue;
+				} else if ( parameter != params.end() ) {
 					// matching parameter, initialize field with copy ctor
 					Expression *srcselect = new VariableExpr(*parameter);
