From 23d956f9358316e3a65455ff3dc4caffb6b67de3 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 16 Mar 2011 13:04:41 -0400 Subject: [PATCH] parser.c (cp_parser_abort_tentative_parse): Make sure we haven't committed to this tentative parse. * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't committed to this tentative parse. From-SVN: r171054 --- 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 ed5dcd85bda..8a4082941d9 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 a9fd2010b25..9523fdccd95 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.30.2