Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision d7312acc807d400d254331f9acbad9eb4da91a8c)
+++ src/CodeGen/CodeGenerator.cc	(revision d807ca2866358a4b3b1a0171f96cffdd65420e92)
@@ -826,4 +826,27 @@
 		expr->expr->accept( *visitor );
 	}
+
+	void CodeGenerator::postvisit( GenericExpr * expr ) {
+		assertf( ! genC, "C11 _Generic expressions should not reach code generation." );
+		output << "_Generic(";
+		expr->control->accept( *visitor );
+		output << ", ";
+		unsigned int numAssocs = expr->associations.size();
+		unsigned int i = 0;
+		for ( GenericExpr::Association & assoc : expr->associations ) {
+			if (assoc.isDefault) {
+				output << "default: ";
+			} else {
+				output << genType( assoc.type, "", pretty, genC ) << ": ";
+			}
+			assoc.expr->accept( *visitor );
+			if ( i+1 != numAssocs ) {
+				output << ", ";
+			}
+			i++;
+		}
+		output << ")";
+	}
+
 
 	// *** Statements
Index: src/CodeGen/CodeGenerator.h
===================================================================
--- src/CodeGen/CodeGenerator.h	(revision d7312acc807d400d254331f9acbad9eb4da91a8c)
+++ src/CodeGen/CodeGenerator.h	(revision d807ca2866358a4b3b1a0171f96cffdd65420e92)
@@ -94,4 +94,5 @@
 		void postvisit( ConstructorExpr * );
 		void postvisit( DeletedExpr * );
+		void postvisit( GenericExpr * );
 
 		//*** Statements
