Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision 82ff4ed18ea03926ec7563a6b4b0dd85391eb692)
+++ src/Parser/DeclarationNode.cc	(revision 878cfcc025be2d89d167ef9fdf1b60ca2d6941b5)
@@ -297,4 +297,10 @@
 	} // if
 } // DeclarationNode::newEnumValueGeneric
+
+DeclarationNode * DeclarationNode::newEnumInLine( const string name ) {
+	DeclarationNode * newnode = newName( new std::string(name) );
+	newnode->enumInLine = true;
+	return newnode;
+}
 
 DeclarationNode * DeclarationNode::newFromTypedef( const string * name ) {
Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision 82ff4ed18ea03926ec7563a6b4b0dd85391eb692)
+++ src/Parser/ExpressionNode.cc	(revision 878cfcc025be2d89d167ef9fdf1b60ca2d6941b5)
@@ -523,5 +523,4 @@
 		auto enumInst = new EnumInstType( Type::Qualifiers(), e );
 		auto obj = new ObjectDecl( name->name, Type::StorageClasses(), LinkageSpec::Cforall, nullptr, enumInst, nullptr );
-		ret->set_var( obj );
 	}
 	return ret;
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision 82ff4ed18ea03926ec7563a6b4b0dd85391eb692)
+++ src/Parser/ParseNode.h	(revision 878cfcc025be2d89d167ef9fdf1b60ca2d6941b5)
@@ -240,4 +240,5 @@
 	static DeclarationNode * newEnumConstant( const std::string * name, ExpressionNode * constant );
 	static DeclarationNode * newEnumValueGeneric( const std::string * name, InitializerNode * init );
+	static DeclarationNode * newEnumInLine( const std::string name );
 	static DeclarationNode * newName( const std::string * );
 	static DeclarationNode * newFromTypeGen( const std::string *, ExpressionNode * params );
@@ -339,4 +340,5 @@
 
 	bool inLine = false;
+	bool enumInLine = false; 
 	Type::FuncSpecifiers funcSpecs;
 	Type::StorageClasses storageClasses;
Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision 82ff4ed18ea03926ec7563a6b4b0dd85391eb692)
+++ src/Parser/TypeData.cc	(revision 878cfcc025be2d89d167ef9fdf1b60ca2d6941b5)
@@ -924,4 +924,9 @@
 	list< Declaration * >::iterator members = ret->get_members().begin();
 	for ( const DeclarationNode * cur = td->enumeration.constants; cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ), ++members ) {
+		if ( cur->enumInLine ) {
+			// Tell the compiler this is a inline value placeholder
+			ObjectDecl * member = dynamic_cast< ObjectDecl* >(* members);
+			member->enumInLine = true;
+		}
 		if ( ret->isTyped && !ret->base && cur->has_enumeratorValue() ) {
 			SemanticError( td->location, "Enumerator of enum(void) cannot have an explicit initializer value." );
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 82ff4ed18ea03926ec7563a6b4b0dd85391eb692)
+++ src/Parser/parser.yy	(revision 878cfcc025be2d89d167ef9fdf1b60ca2d6941b5)
@@ -2605,5 +2605,5 @@
 		{ $$ = DeclarationNode::newEnumValueGeneric( $1, $2 ); }
 	| INLINE type_name
-		{ $$ = DeclarationNode::newEnumValueGeneric( new string("inline"), nullptr ); }
+		{ $$ = DeclarationNode::newEnumInLine( *$2->type->symbolic.name ); }
 	| enumerator_list ',' identifier_or_type_name enumerator_value_opt
 		{ $$ = $1->appendList( DeclarationNode::newEnumValueGeneric( $3, $4 ) ); }
