Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision b0d9ff7d1c0e2e2925b14ceb97f88762bde87c64)
+++ src/CodeGen/CodeGenerator.cc	(revision 12df6fe35a1d7d73a64293320db6c3a0b195af33)
@@ -277,5 +277,6 @@
 		std::list< Declaration* > &memb = enumDecl->get_members();
 		if (enumDecl->base && ! memb.empty()) {
-			unsigned long long last_val = -1;
+			unsigned long long last_val = -1; // if the first enum value has no explicit initializer, 
+			// as other 
 			for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end();  i++) {
 				ObjectDecl * obj = dynamic_cast< ObjectDecl* >( *i );
@@ -289,5 +290,5 @@
 					if ( obj->get_init() ) {
 						obj->get_init()->accept( *visitor );
-						// last_val = ((ConstantExpr *)(((SingleInit *)(obj->init))->value))->constant.get_ival();
+						last_val = ((ConstantExpr *)(((SingleInit *)(obj->init))->value))->constant.get_ival();
 					} else {
 						output << ++last_val;
