re PR c++/27359 (ICE with missing initialization of iteration variable in parallel for loop)

PR c++/27359
	* parser.c (cp_parser_omp_for_loop): Only call
	cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
	called.

	* g++.dg/gomp/pr27359.C: New test.

From-SVN: r113513
This commit is contained in:
Jakub Jelinek 2006-05-04 08:29:16 +02:00 committed by Jakub Jelinek
parent 0ef1a53701
commit 76c5e6e079
4 changed files with 25 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2006-05-04 Jakub Jelinek <jakub@redhat.com>
PR c++/27359
* parser.c (cp_parser_omp_for_loop): Only call
cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
called.
2006-05-02 Mark Mitchell <mark@codesourcery.com>
PR c++/27102

View File

@ -18506,14 +18506,13 @@ cp_parser_omp_for_loop (cp_parser *parser)
pop_scope (pushed_scope);
}
}
else
cp_parser_abort_tentative_parse (parser);
/* If parsing as an initialized declaration failed, try again as
a simple expression. */
if (decl == NULL)
{
cp_parser_abort_tentative_parse (parser);
init = cp_parser_expression (parser, false);
}
init = cp_parser_expression (parser, false);
}
cp_parser_require (parser, CPP_SEMICOLON, "`;'");
pre_body = pop_stmt_list (pre_body);

View File

@ -1,3 +1,8 @@
2006-05-04 Jakub Jelinek <jakub@redhat.com>
PR c++/27359
* g++.dg/gomp/pr27359.C: New test.
2006-05-02 Steven G. Kargl <kargls@comcast.net>
PR fortran/20248

View File

@ -0,0 +1,10 @@
// PR c++/27359
// { dg-do compile }
void
foo ()
{
#pragma omp parallel for
for (int i; i < 1; ++i) // { dg-error "expected|was not declared" }
;
}