From bbd3de907b7b600739ebfd5424e4faf6f431611b Mon Sep 17 00:00:00 2001 From: nathan Date: Wed, 23 Jul 2003 13:02:34 +0000 Subject: [PATCH] cp: * parser.c (cp_parser_nested_name_specifier): Reset scope on failure. (cp_parser_elaborated_type_specifier): Likewise. testsuite: * g++.dg/parse/crash10: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69702 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 7 +++++++ gcc/cp/parser.c | 6 +++++- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/g++.dg/parse/crash10.C | 11 +++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/parse/crash10.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 98279914753..45f17513aee 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2003-07-23 Nathan Sidwell + + PR c++/10953 + * parser.c (cp_parser_nested_name_specifier): Reset scope on + failure. + (cp_parser_elaborated_type_specifier): Likewise. + 2003-07-22 Mark Mitchell Eliminate use of POINTER_TYPE for pointers-to-members. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 3cef2e2257f..5a7dc875bb9 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -3052,6 +3052,7 @@ cp_parser_nested_name_specifier (cp_parser *parser, if (!scope) { cp_parser_error (parser, "expected nested-name-specifier"); + parser->scope = NULL_TREE; return error_mark_node; } @@ -8439,7 +8440,10 @@ cp_parser_elaborated_type_specifier (cp_parser* parser, identifier = cp_parser_identifier (parser); if (identifier == error_mark_node) - return error_mark_node; + { + parser->scope = NULL_TREE; + return error_mark_node; + } /* For a `typename', we needn't call xref_tag. */ if (tag_type == typename_type) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 085f25d4ec5..1667deac5e0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-07-23 Nathan Sidwell + + * g++.dg/parse/crash10: New test. + 2003-07-22 Nathan Sidwell * g++.dg/ext/flexary1.C: New test. diff --git a/gcc/testsuite/g++.dg/parse/crash10.C b/gcc/testsuite/g++.dg/parse/crash10.C new file mode 100644 index 00000000000..878139fa0de --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/crash10.C @@ -0,0 +1,11 @@ +// { dg-do compile } + +// Copyright (C) 2003 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 22 Jul 2003 + +// PR c++ 10953. ICE + +class +{ + typename:: // { dg-error "" "" } +; // { dg-error "" "" } -- 2.11.4.GIT