OSDN Git Service

PR c/39495
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Mar 2009 21:05:30 +0000 (21:05 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Mar 2009 21:05:30 +0000 (21:05 +0000)
commit4390875c4e0177b9da990939264a353e0c9c0f46
treea9fdfdfd88e5b8dd5deaf726ac04e0979d9d8ed9
parent8173d80aef500e3325938bbff881a569d8bb51ec
PR c/39495
* c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
instead of c_parser_expression_conv, if original_code isn't one of the
4 allowed comparison codes, fail.

* semantics.c (handle_omp_for_class_iterator): Swap cond operands and
code if iter is the second operand.
* parser.c (cp_parser_binary_expression): Add no_toplevel_fold_p
argument.  If it is set, don't build the toplevel expression with
build_x_binary_op, but build2.
(cp_parser_assignment_expression,  cp_parser_omp_for_incr): Adjust
callers.
(cp_parser_omp_for_cond): Don't assume the first operand of the
comparison must be decl.

* gcc.dg/gomp/pr39495-2.c: Remove xfails.

* testsuite/libgomp.c/loop-12.c: New test.
* testsuite/libgomp.c/loop-11.c: New test.
* testsuite/libgomp.c++/loop-11.C: New test.
* testsuite/libgomp.c++/loop-12.C: New test.
* testsuite/libgomp.c++/for-8.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145014 138bc75d-0d04-0410-961f-82ee72b054a4
13 files changed:
gcc/ChangeLog
gcc/c-parser.c
gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/gomp/pr39495-2.c
libgomp/ChangeLog
libgomp/testsuite/libgomp.c++/for-8.C [new file with mode: 0644]
libgomp/testsuite/libgomp.c++/loop-11.C [new file with mode: 0644]
libgomp/testsuite/libgomp.c++/loop-12.C [new file with mode: 0644]
libgomp/testsuite/libgomp.c/loop-11.c [new file with mode: 0644]
libgomp/testsuite/libgomp.c/loop-12.c [new file with mode: 0644]