Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision 145f1fc837f3fe2237a52a1c4d10dfa54a209da5)
+++ src/CodeGen/CodeGenerator.cc	(revision e45215cc5478d2ed1f347be746a500ec40fc3c4a)
@@ -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 145f1fc837f3fe2237a52a1c4d10dfa54a209da5)
+++ src/CodeGen/CodeGenerator.h	(revision e45215cc5478d2ed1f347be746a500ec40fc3c4a)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Thu Jun 11 13:24:23 2015
-// Update Count     : 23
+// Last Modified On : Wed Jun 17 11:10:58 2015
+// Update Count     : 25
 //
 
@@ -93,4 +93,5 @@
 		std::ostream &output;
 
+		void printDesignators( std::list< Expression * > & );
 		static std::string printLabels ( std::list < Label > & );
 		void handleStorageClass( Declaration *decl );
