Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision dd020c0cdff72537d5b1dffcf6920c72db9d585a)
+++ src/CodeGen/CodeGenerator.cc	(revision a7c90d4d68e0538c8215b52b958e12c56980c401)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Mar  3 21:18:47 2017
-// Update Count     : 465
+// Last Modified On : Sun Mar  5 17:13:33 2017
+// Update Count     : 475
 //
 
@@ -895,26 +895,7 @@
 
 	void CodeGenerator::handleStorageClass( DeclarationWithType * decl ) {
-		switch ( decl->get_storageClass() ) {
-			//output << DeclarationNode::storageClassNames[decl->get_storageClass()] << ' ';
-		  case DeclarationNode::Extern:
-			output << "extern ";
-			break;
-		  case DeclarationNode::Static:
-			output << "static ";
-			break;
-		  case DeclarationNode::Auto:
-			// silently drop storage class
-			break;
-		  case DeclarationNode::Register:
-			output << "register ";
-			break;
-		  case DeclarationNode::Threadlocal:
-		  	output << "_Thread_local ";
-		  	break;
-		  case DeclarationNode::NoStorageClass:
-			break;
-		  default:
-			assert( false );
-		} // switch
+		if ( decl->get_storageClasses().any() ) {
+			DeclarationNode::print_StorageClass( output, decl->get_storageClasses() );
+		} // if
 	} // CodeGenerator::handleStorageClass
 
Index: src/CodeGen/FixNames.cc
===================================================================
--- src/CodeGen/FixNames.cc	(revision dd020c0cdff72537d5b1dffcf6920c72db9d585a)
+++ src/CodeGen/FixNames.cc	(revision a7c90d4d68e0538c8215b52b958e12c56980c401)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Mar  3 21:52:17 2017
-// Update Count     : 6
+// Last Modified On : Mon Mar  6 23:32:08 2017
+// Update Count     : 15
 //
 
@@ -39,13 +39,9 @@
 	std::string mangle_main() {
 		FunctionType* main_type;
-		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl(
-			"main", 
-			DeclarationNode::NoStorageClass, 
-			LinkageSpec::Cforall, 
-			main_type = new FunctionType( Type::Qualifiers(), true ), 
-			nullptr
-		) };
+		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl( "main", DeclarationNode::StorageClasses(), LinkageSpec::Cforall,
+																   main_type = new FunctionType( Type::Qualifiers(), true ), nullptr )
+				};
 		main_type->get_returnVals().push_back( 
-			new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
+			new ObjectDecl( "", DeclarationNode::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
 
@@ -56,21 +52,17 @@
 	std::string mangle_main_args() {
 		FunctionType* main_type;
-		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl(
-			"main", 
-			DeclarationNode::NoStorageClass, 
-			LinkageSpec::Cforall, 
-			main_type = new FunctionType( Type::Qualifiers(), false ), 
-			nullptr
-		) };
+		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl( "main", DeclarationNode::StorageClasses(), LinkageSpec::Cforall, 
+																   main_type = new FunctionType( Type::Qualifiers(), false ), nullptr )
+				};
 		main_type->get_returnVals().push_back( 
-			new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
+			new ObjectDecl( "", DeclarationNode::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
 
 		mainDecl->get_functionType()->get_parameters().push_back( 
-			new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
+			new ObjectDecl( "", DeclarationNode::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
 
 		mainDecl->get_functionType()->get_parameters().push_back( 
-			new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, 
+			new ObjectDecl( "", DeclarationNode::StorageClasses(), LinkageSpec::Cforall, 0, 
 			new PointerType( Type::Qualifiers(), new PointerType( Type::Qualifiers(), new BasicType( Type::Qualifiers(), BasicType::Char ) ) ), 
 			nullptr )
