Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision b4f8808d54aaa8b4ea7ffa142e012fe33696f7b0)
+++ src/CodeGen/CodeGenerator.cc	(revision c5c014846e9f89bff997e6df2abd934decfccf44)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Andrew Beach
-// Last Modified On : Thr May  2 10:47:00 2019
-// Update Count     : 497
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sat Oct 19 19:30:38 2019
+// Update Count     : 506
 //
 #include "CodeGenerator.h"
@@ -198,12 +198,16 @@
 		// deleted decls should never be used, so don't print them
 		if ( objectDecl->isDeleted && options.genC ) return;
-		if (objectDecl->get_name().empty() && options.genC ) {
+
+		// gcc allows an empty declarator (no name) for bit-fields and C states: 6.7.2.1 Structure and union specifiers,
+		// point 4, page 113: If the (bit field) value is zero, the declaration shall have no declarator.  For anything
+		// else, the anonymous name refers to the anonymous object for plan9 inheritance.
+		if ( objectDecl->get_name().empty() && options.genC && ! objectDecl->get_bitfieldWidth() ) {
 			// only generate an anonymous name when generating C code, otherwise it clutters the output too much
 			static UniqueName name = { "__anonymous_object" };
 			objectDecl->set_name( name.newName() );
-            // Stops unused parameter warnings.
-            if ( options.anonymousUnused ) {
-                objectDecl->attributes.push_back( new Attribute( "unused" ) );
-            }
+			// Stops unused parameter warnings.
+			if ( options.anonymousUnused ) {
+				objectDecl->attributes.push_back( new Attribute( "unused" ) );
+			}
 		}
 
