diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-01-24 21:58:21 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-01-24 21:58:21 +0100 |
commit | 07b7aade9dd819cff10a92a718fd2226cafaef1e (patch) | |
tree | e3b0b87469cd96d6afc98081bf8d71bc30adac60 /gcc/testsuite | |
parent | 4288fea21277dfd56522378ce31ae2461a299303 (diff) | |
download | gcc-07b7aade9dd819cff10a92a718fd2226cafaef1e.zip gcc-07b7aade9dd819cff10a92a718fd2226cafaef1e.tar.gz gcc-07b7aade9dd819cff10a92a718fd2226cafaef1e.tar.bz2 |
re PR middle-end/27416 (ICE on invalid firstprivate/lastprivate)
PR middle-end/27416
* gimplify.c (omp_check_private): New function.
(gimplify_scan_omp_clauses): Use it for
firstprivate/lastprivate/reduction.
* gcc.dg/gomp/pr27416.c: New test.
From-SVN: r121133
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/pr27416.c | 31 |
2 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fcb4e74..3f42ce9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2007-01-24 Jakub Jelinek <jakub@redhat.com> + PR middle-end/27416 + * gcc.dg/gomp/pr27416.c: New test. + PR middle-end/30494 * gcc.dg/gomp/pr30494.c: New test. * g++.dg/gomp/pr30494.C: New test. diff --git a/gcc/testsuite/gcc.dg/gomp/pr27416.c b/gcc/testsuite/gcc.dg/gomp/pr27416.c new file mode 100644 index 0000000..8024024 --- /dev/null +++ b/gcc/testsuite/gcc.dg/gomp/pr27416.c @@ -0,0 +1,31 @@ +/* PR middle-end/27416 */ +/* { dg-do compile } */ + +void +foo (void) +{ + int i = 0, j = 0; +#pragma omp for firstprivate (j) /* { dg-error "is private in outer context" } */ + for (i = 0; i < 10; i++) + j++; +} + +int +bar (void) +{ + int i, j; +#pragma omp for lastprivate (j) /* { dg-error "is private in outer context" } */ + for (i = 0; i < 10; i++) + j = i; + return j; +} + +int +baz (void) +{ + int i, j = 0; +#pragma omp for reduction (+:j) /* { dg-error "is private in outer context" } */ + for (i = 0; i < 10; i++) + j++; + return j; +} |