diff options
| author | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-03-13 10:26:25 +0100 |
|---|---|---|
| committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-03-13 10:26:25 +0100 |
| commit | d0fb20beb1b45c61b41bef61ab48c2e7b425560c (patch) | |
| tree | 45d911a5091949c7b0cf5a010ff1cbc43fcb128a /libgomp | |
| parent | 20cef83acca722837e262ac90c4f5fce51559274 (diff) | |
| download | gcc-d0fb20beb1b45c61b41bef61ab48c2e7b425560c.tar.gz gcc-d0fb20beb1b45c61b41bef61ab48c2e7b425560c.tar.bz2 gcc-d0fb20beb1b45c61b41bef61ab48c2e7b425560c.zip | |
re PR middle-end/35185 (ICE using openmp with g++-4.2)
PR middle-end/35185
* omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
(lower_omp_2): New function.
(lower_omp_1, lower_omp): Rewritten.
* testsuite/libgomp.c++/pr35185.C: New test.
From-SVN: r133162
Diffstat (limited to 'libgomp')
| -rw-r--r-- | libgomp/ChangeLog | 5 | ||||
| -rw-r--r-- | libgomp/testsuite/libgomp.c++/pr35185.C | 33 |
2 files changed, 38 insertions, 0 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 30782434487..17d714c1d45 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,8 @@ +2008-03-13 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/35185 + * testsuite/libgomp.c++/pr35185.C: New test. + 2008-03-12 Jakub Jelinek <jakub@redhat.com> PR middle-end/35549 diff --git a/libgomp/testsuite/libgomp.c++/pr35185.C b/libgomp/testsuite/libgomp.c++/pr35185.C new file mode 100644 index 00000000000..f22c7720787 --- /dev/null +++ b/libgomp/testsuite/libgomp.c++/pr35185.C @@ -0,0 +1,33 @@ +// PR middle-end/35185 +// { dg-do run } + +extern "C" void abort (); + +struct S +{ + S () : s (6) {} + ~S () {} + int s; +}; + +__attribute__((noinline)) +bool +bar (S s) +{ + return s.s != 6; +} + +int +main () +{ + S s; + int err = 0; +#pragma omp parallel shared (s) + { + if (bar (s)) + #pragma omp atomic + err++; + } + if (err) + abort (); +} |
