re PR c/63326 (whether a #pragma is a statement depends on the type of pragma)
authorJakub Jelinek <jakub@redhat.com>
Fri, 27 Nov 2015 08:59:55 +0000 (09:59 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 27 Nov 2015 08:59:55 +0000 (09:59 +0100)
commitaec17bfe911ec61571db80eb5b0093a5b19e39e4
treee72671d0f3333ec8e1457d802ba502e75e9746ea
parent5e48d8a09e4aefa3cdd6e0971c52b1665ef69e34
re PR c/63326 (whether a #pragma is a statement depends on the type of pragma)

PR c/63326
* c-parser.c (c_parser_compound_statement_nostart): If
last_label is true, use pragma_stmt instead of pragma_compound
as second c_parser_pragma argument.
(c_parser_omp_ordered, c_parser_omp_target_update,
c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Pass
false as second argument to c_parser_skip_to_pragma_eol after
diagnosing standalone directives used in pragma_stmt context.

* parser.c (cp_parser_statement): Clear in_compound after labels.

* gcc.dg/gomp/barrier-2.c (f2): Expect another error after label.
* c-c++-common/gomp/pr63326.c: New test.

* testsuite/libgomp.c/cancel-parallel-2.c (foo): Add semicolon
in between case label and OpenMP standalone directives.
* testsuite/libgomp.c++/cancel-parallel-2.C (foo): Likewise.

From-SVN: r230999
gcc/c/ChangeLog
gcc/c/c-parser.c
gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/gomp/pr63326.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/gomp/barrier-2.c
libgomp/ChangeLog
libgomp/testsuite/libgomp.c++/cancel-parallel-2.C
libgomp/testsuite/libgomp.c/cancel-parallel-2.c