aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2013-02-06 15:58:32 -0500
committerJason Merrill <jason@gcc.gnu.org>2013-02-06 15:58:32 -0500
commitceb8649576ddeedbc83623af23eadbad7a13e621 (patch)
tree6e00e364e80abaad663e742be56af3466421657a
parent828e50c53cc7d1d4e30ba32e2a7c7343d7f5fe46 (diff)
downloadgcc-ceb8649576ddeedbc83623af23eadbad7a13e621.zip
gcc-ceb8649576ddeedbc83623af23eadbad7a13e621.tar.gz
gcc-ceb8649576ddeedbc83623af23eadbad7a13e621.tar.bz2
* parser.c (cp_parser_enum_specifier): Check for error_mark_node.
From-SVN: r195818
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/parser.c2
-rw-r--r--gcc/testsuite/g++.dg/parse/enum10.C2
3 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a5f944b..f60735d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+2013-02-06 Jason Merrill <jason@redhat.com>
+
+ * parser.c (cp_parser_enum_specifier): Check for error_mark_node.
+
2013-02-05 Jason Merrill <jason@redhat.com>
PR c++/54122
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 74db9ae..72da561 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 0000000..8760597
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/enum10.C
@@ -0,0 +1,2 @@
+namespace A { }
+enum A::B { }; // { dg-error "" }