re PR c++/51496 (FAIL: libgomp.c++/for-2.C * (test for excess errors))

PR c++/51496
	* parser.c (cp_parser_omp_for_loop): When determining whether
	to use cp_parser_omp_for_incr or cp_parser_expression and when
	calling cp_parser_omp_for_incr, use real_decl instead of decl.

From-SVN: r182257
This commit is contained in:
Jakub Jelinek 2011-12-12 19:55:06 +01:00
parent fe4bf59fb6
commit 007db66070
2 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2011-12-12 Jakub Jelinek <jakub@redhat.com>
PR c++/51496
* parser.c (cp_parser_omp_for_loop): When determining whether
to use cp_parser_omp_for_incr or cp_parser_expression and when
calling cp_parser_omp_for_incr, use real_decl instead of decl.
2011-12-12 Torvald Riegel <triegel@redhat.com>
* semantics.c (finish_transaction_stmt, build_transaction_expr):
@ -9,7 +16,7 @@
(cp_parser_noexcept_specification_opt): ...here. Allow for parsing
non-constexpr noexcept arguments.
(cp_parser_transaction, cp_parser_transaction_expression): Parse
and handle noexcept-specifications.
and handle noexcept-specifications.
(cp_parser_function_transaction): Adapt to finish_transaction_stmt
change.
* pt.c (tsubst_expr): Adapt to new noexcept parameters when

View File

@ -26354,11 +26354,11 @@ cp_parser_omp_for_loop (cp_parser *parser, tree clauses, tree *par_clauses)
{
/* If decl is an iterator, preserve the operator on decl
until finish_omp_for. */
if (decl
if (real_decl
&& ((processing_template_decl
&& !POINTER_TYPE_P (TREE_TYPE (decl)))
|| CLASS_TYPE_P (TREE_TYPE (decl))))
incr = cp_parser_omp_for_incr (parser, decl);
&& !POINTER_TYPE_P (TREE_TYPE (real_decl)))
|| CLASS_TYPE_P (TREE_TYPE (real_decl))))
incr = cp_parser_omp_for_incr (parser, real_decl);
else
incr = cp_parser_expression (parser, false, NULL);
}