Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision f196351459b11bf18eaef663d78e23d30f044ddd)
+++ src/Parser/TypeData.cc	(revision 322b97e2a57358cc53dbed9518af5bd8ae638ada)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 15:12:51 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Fri Aug 11 10:50:00 2017
-// Update Count     : 567
+// Last Modified On : Mon Aug 14 10:41:00 2017
+// Update Count     : 568
 //
 
@@ -628,9 +628,9 @@
 		break;
 	  case DeclarationNode::Union:
-		at = new UnionDecl( *td->aggregate.name, attributes );
+		at = new UnionDecl( *td->aggregate.name, attributes, linkage );
 		buildForall( td->aggregate.params, at->get_parameters() );
 		break;
 	  case DeclarationNode::Trait:
-		at = new TraitDecl( *td->aggregate.name, attributes );
+		at = new TraitDecl( *td->aggregate.name, attributes, linkage );
 		buildList( td->aggregate.params, at->get_parameters() );
 		break;
@@ -649,5 +649,5 @@
 	  case TypeData::Enum: {
 		  if ( type->enumeration.body ) {
-			  EnumDecl * typedecl = buildEnum( type, attributes );
+			  EnumDecl * typedecl = buildEnum( type, attributes, linkage );
 			  return new EnumInstType( buildQualifiers( type ), typedecl );
 		  } else {
@@ -754,7 +754,7 @@
 } // buildSymbolic
 
-EnumDecl * buildEnum( const TypeData * td, std::list< Attribute * > attributes ) {
+EnumDecl * buildEnum( const TypeData * td, std::list< Attribute * > attributes, LinkageSpec::Spec linkage ) {
 	assert( td->kind == TypeData::Enum );
-	EnumDecl * ret = new EnumDecl( *td->enumeration.name, attributes );
+	EnumDecl * ret = new EnumDecl( *td->enumeration.name, attributes, linkage );
 	buildList( td->enumeration.constants, ret->get_members() );
 	list< Declaration * >::iterator members = ret->get_members().begin();
@@ -807,5 +807,5 @@
 		return buildAggregate( td, attributes, linkage );
 	} else if ( td->kind == TypeData::Enum ) {
-		return buildEnum( td, attributes );
+		return buildEnum( td, attributes, linkage );
 	} else if ( td->kind == TypeData::Symbolic ) {
 		return buildSymbolic( td, name, scs, linkage );
Index: src/Parser/TypeData.h
===================================================================
--- src/Parser/TypeData.h	(revision f196351459b11bf18eaef663d78e23d30f044ddd)
+++ src/Parser/TypeData.h	(revision 322b97e2a57358cc53dbed9518af5bd8ae638ada)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Sat May 16 15:18:36 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul 22 09:32:47 2017
-// Update Count     : 188
+// Last Modified By : Andrew Beach
+// Last Modified On : Mon Aug 14 10:38:00 2017
+// Update Count     : 189
 //
 
@@ -107,5 +107,5 @@
 ReferenceToType * buildAggInst( const TypeData * );
 TypeDecl * buildVariable( const TypeData * );
-EnumDecl * buildEnum( const TypeData *, std::list< Attribute * > );
+EnumDecl * buildEnum( const TypeData *, std::list< Attribute * >, LinkageSpec::Spec );
 TypeInstType * buildSymbolicInst( const TypeData * );
 TupleType * buildTuple( const TypeData * );
