Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision 7f5566b3fe2cd28774da6eb330d767776dd50ea4)
+++ src/CodeGen/CodeGenerator.cc	(revision d60ccbfdb9d0e8350271d71c85681a0b22f666df)
@@ -186,9 +186,37 @@
 	}
 
+	void CodeGenerator::printDesignators( std::list< Expression * > & designators ) {
+		typedef std::list< Expression * > DesignatorList;
+		if ( designators.size() == 0 ) return;
+		for ( DesignatorList::iterator iter = designators.begin(); iter != designators.end(); ++iter ) {
+			// if expression is a name, then initializing aggregate member, if constant expression then array
+			if ( NameExpr * nm = dynamic_cast< NameExpr * >( *iter ) ) {
+				if ( nm->get_name() == "0" || nm->get_name() == "1" ) {
+					// except if name is 0 or 1...
+					output << "[";
+					nm->accept( *this );
+					output << "]";
+				} else {
+					output << ".";
+					nm->accept( *this );
+				}
+			} else if ( dynamic_cast< ConstantExpr * >( *iter ) ) {
+				output << "[";
+				(*iter)->accept( *this );
+				output << "]";
+			} else {
+				assert(0);
+			}
+		}
+		output << " = ";
+	}
+
 	void CodeGenerator::visit( SingleInit *init ) {
+		printDesignators( init->get_designators() );
 		init->get_value()->accept( *this );
 	}
 
 	void CodeGenerator::visit( ListInit *init ) {
+		printDesignators( init->get_designators() );
 		output << "{ ";
 		genCommaList( init->begin_initializers(), init->end_initializers() );
Index: src/CodeGen/CodeGenerator.h
===================================================================
--- src/CodeGen/CodeGenerator.h	(revision 7f5566b3fe2cd28774da6eb330d767776dd50ea4)
+++ src/CodeGen/CodeGenerator.h	(revision d60ccbfdb9d0e8350271d71c85681a0b22f666df)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul 24 13:34:47 2015
-// Update Count     : 25
+// Last Modified By : Rob Schluntz
+// Last Modified On : Wed Aug 12 14:27:14 2015
+// Update Count     : 27
 //
 
@@ -95,4 +95,5 @@
 		std::ostream &output;
 
+		void printDesignators( std::list< Expression * > & );
 		static std::string printLabels ( std::list < Label > & );
 		void handleStorageClass( Declaration *decl );
