Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision 09f800bd7b91671fcde02aa251d4cb0eecc48ae1)
+++ src/CodeGen/CodeGenerator.cc	(revision 4550bcf935f90330157f80a896d26203b85f9317)
@@ -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 : Mon Jul 27 14:40:06 2015
-// Update Count     : 218
+// Last Modified By : Rob Schluntz
+// Last Modified On : Wed Aug 12 14:33:52 2015
+// Update Count     : 222
 //
 
@@ -186,9 +186,29 @@
 	}
 
+	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 ( NameExpr * nm = dynamic_cast< NameExpr * >( *iter ) ) {
+				// if expression is a name, then initializing aggregate member
+				output << ".";
+				(*iter)->accept( *this );
+			} else {
+				// if not a simple name, it has to be a constant expression, i.e. an array designator
+				output << "[";
+				(*iter)->accept( *this );
+				output << "]";
+			}
+		}
+		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 09f800bd7b91671fcde02aa251d4cb0eecc48ae1)
+++ src/CodeGen/CodeGenerator.h	(revision 4550bcf935f90330157f80a896d26203b85f9317)
@@ -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 );
