diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-12-19 13:58:32 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-12-19 13:58:32 +0100 |
commit | 5259c813103b272f141eb5aafc5e473301d58760 (patch) | |
tree | 218084fab0c5c9054f254323159ee54c135a9e9c | |
parent | 5141868dc037e51930341c5508036d5325c07739 (diff) | |
download | gcc-5259c813103b272f141eb5aafc5e473301d58760.zip gcc-5259c813103b272f141eb5aafc5e473301d58760.tar.gz gcc-5259c813103b272f141eb5aafc5e473301d58760.tar.bz2 |
re PR c++/34513 (static variable not found for C++ OpenMP)
PR c++/34513
* parser.c (cp_parser_omp_parallel): For non-combined parallel
call cp_parser_statement rather than
cp_parser_already_scoped_statement.
* testsuite/libgomp.c/pr34513.c: New test.
* testsuite/libgomp.c++/pr34513.C: New test.
From-SVN: r131059
-rw-r--r-- | gcc/cp/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/parser.c | 2 | ||||
-rw-r--r-- | libgomp/ChangeLog | 6 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c++/pr34513.C | 32 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/pr34513.c | 33 |
5 files changed, 79 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c7f0fc4..39eb736c5b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2007-12-19 Jakub Jelinek <jakub@redhat.com> + + PR c++/34513 + * parser.c (cp_parser_omp_parallel): For non-combined parallel + call cp_parser_statement rather than + cp_parser_already_scoped_statement. + 2007-12-18 Jason Merrill <jason@redhat.com> PR c++/34206 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index f3d4ce2..d592620 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -20271,7 +20271,7 @@ cp_parser_omp_parallel (cp_parser *parser, cp_token *pragma_tok) switch (p_kind) { case PRAGMA_OMP_PARALLEL: - cp_parser_already_scoped_statement (parser); + cp_parser_statement (parser, NULL_TREE, false, NULL); par_clause = clauses; break; diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 49b6c54..0ef0abf 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,9 @@ +2007-12-19 Jakub Jelinek <jakub@redhat.com> + + PR c++/34513 + * testsuite/libgomp.c/pr34513.c: New test. + * testsuite/libgomp.c++/pr34513.C: New test. + 2007-12-17 Jack Howarth <howarth@bromo.med.uc.edu> PR target/32765 diff --git a/libgomp/testsuite/libgomp.c++/pr34513.C b/libgomp/testsuite/libgomp.c++/pr34513.C new file mode 100644 index 0000000..e5ad3bc --- /dev/null +++ b/libgomp/testsuite/libgomp.c++/pr34513.C @@ -0,0 +1,32 @@ +// PR c++/34513 +// { dg-do run } + +#include <omp.h> + +extern "C" void abort (); + +static int errors = 0; +static int thrs = 4; + +int +main () +{ + omp_set_dynamic (0); + + #pragma omp parallel num_threads (thrs) + { + static int shrd = 0; + + #pragma omp atomic + shrd += 1; + + #pragma omp barrier + + if (shrd != thrs) + #pragma omp atomic + errors += 1; + } + + if (errors) + abort (); +} diff --git a/libgomp/testsuite/libgomp.c/pr34513.c b/libgomp/testsuite/libgomp.c/pr34513.c new file mode 100644 index 0000000..76c7ac1 --- /dev/null +++ b/libgomp/testsuite/libgomp.c/pr34513.c @@ -0,0 +1,33 @@ +/* PR c++/34513 */ +/* { dg-do run } */ + +#include <omp.h> + +extern void abort (); + +static int errors = 0; +static int thrs = 4; + +int +main () +{ + omp_set_dynamic (0); + + #pragma omp parallel num_threads (thrs) + { + static int shrd = 0; + + #pragma omp atomic + shrd += 1; + + #pragma omp barrier + + if (shrd != thrs) + #pragma omp atomic + errors += 1; + } + + if (errors) + abort (); + return 0; +} |