summaryrefslogtreecommitdiffstats
path: root/libgomp
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2008-03-12 09:55:48 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2008-03-12 09:55:48 +0000
commite8a588af71e790aeb443acfc81edaf650729455a (patch)
treecda5526042cb74fb68ccf75d855c64c449f59a35 /libgomp
parentc6ba58f9401741fdfa802f15783cfc375f69820a (diff)
downloadppe42-gcc-e8a588af71e790aeb443acfc81edaf650729455a.tar.gz
ppe42-gcc-e8a588af71e790aeb443acfc81edaf650729455a.zip
PR middle-end/35549
* omp-low.c (maybe_lookup_decl): Constify first argument. (use_pointer_for_field): Change last argument from bool to omp_context *. Disallow shared copy-in/out in nested parallel if decl is shared in outer parallel too. (build_outer_var_ref, scan_sharing_clauses, lower_rec_input_clauses, lower_copyprivate_clauses, lower_send_clauses, lower_send_shared_vars): Adjust callers. * testsuite/libgomp.c/pr35549.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133136 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgomp')
-rw-r--r--libgomp/ChangeLog5
-rw-r--r--libgomp/testsuite/libgomp.c/pr35549.c30
2 files changed, 35 insertions, 0 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 84c70491ece..30782434487 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,8 @@
+2008-03-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/35549
+ * testsuite/libgomp.c/pr35549.c: New test.
+
2008-03-06 Jakub Jelinek <jakub@redhat.com>
* testsuite/libgomp.c/atomic-3.c: New test.
diff --git a/libgomp/testsuite/libgomp.c/pr35549.c b/libgomp/testsuite/libgomp.c/pr35549.c
new file mode 100644
index 00000000000..269a0c26290
--- /dev/null
+++ b/libgomp/testsuite/libgomp.c/pr35549.c
@@ -0,0 +1,30 @@
+/* PR middle-end/35549 */
+/* { dg-do run } */
+
+#include <omp.h>
+#include <stdlib.h>
+
+int
+main (void)
+{
+ int i = 6, n = 0;
+ omp_set_dynamic (0);
+ omp_set_nested (1);
+ #pragma omp parallel shared (i) num_threads (3)
+ {
+ if (omp_get_num_threads () != 3)
+ #pragma omp atomic
+ n += 1;
+ #pragma omp parallel shared (i) num_threads (4)
+ {
+ if (omp_get_num_threads () != 4)
+ #pragma omp atomic
+ n += 1;
+ #pragma omp critical
+ i += 1;
+ }
+ }
+ if (n == 0 && i != 6 + 3 * 4)
+ abort ();
+ return 0;
+}
OpenPOWER on IntegriCloud