From 1f595a02d9de64f3a209bf7a22c89ca6744c33e5 Mon Sep 17 00:00:00 2001 From: jason Date: Wed, 16 Mar 2011 17:04:41 +0000 Subject: [PATCH] * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't committed to this tentative parse. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171054 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 3 +++ gcc/cp/parser.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ed5dcd8..8a40829 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2011-03-16 Jason Merrill + * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't + committed to this tentative parse. + PR c++/47999 * semantics.c (finish_call_expr): Preserve reference semantics in templates. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index a9fd201..9523fdc 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -21398,6 +21398,8 @@ cp_parser_commit_to_tentative_parse (cp_parser* parser) static void cp_parser_abort_tentative_parse (cp_parser* parser) { + gcc_assert (parser->context->status != CP_PARSER_STATUS_KIND_COMMITTED + || errorcount > 0); cp_parser_simulate_error (parser); /* Now, pretend that we want to see if the construct was successfully parsed. */ -- 2.7.4