diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a5f944bc08db..f60735d61659 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2013-02-06 Jason Merrill + + * parser.c (cp_parser_enum_specifier): Check for error_mark_node. + 2013-02-05 Jason Merrill PR c++/54122 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 74db9aef3e0c..72da561c357d 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -14567,7 +14567,7 @@ cp_parser_enum_specifier (cp_parser* parser) /*check_dependency=*/true, /*ambiguous_decls=*/NULL, input_location); - if (name) + if (name && name != error_mark_node) { type = TREE_TYPE (name); if (TREE_CODE (type) == TYPENAME_TYPE) diff --git a/gcc/testsuite/g++.dg/parse/enum10.C b/gcc/testsuite/g++.dg/parse/enum10.C new file mode 100644 index 000000000000..8760597a7fb0 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/enum10.C @@ -0,0 +1,2 @@ +namespace A { } +enum A::B { }; // { dg-error "" }