diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-12-04 00:06:55 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-12-04 00:06:55 +0100 |
commit | d2dda7fed054ab18eaabd73adb0ca30b7bcb6605 (patch) | |
tree | 29377c3f249eb97a42a6b0e5ab3ed8a3948909b0 /libgomp | |
parent | 22164c3db7653556de1044be9491034c1c40bf8e (diff) | |
download | gcc-d2dda7fed054ab18eaabd73adb0ca30b7bcb6605.zip gcc-d2dda7fed054ab18eaabd73adb0ca30b7bcb6605.tar.gz gcc-d2dda7fed054ab18eaabd73adb0ca30b7bcb6605.tar.bz2 |
omp-low.c (lookup_decl_in_outer_ctx): Allow calling this with !ctx->is_nested.
* omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
with !ctx->is_nested.
(maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
even if !ctx->is_nested.
(lower_copyprivate_clauses, lower_send_clauses,
lower_send_shared_vars): Call lookup_decl_in_outer_ctx
unconditionally.
* testsuite/libgomp.c/private-1.c: New test.
From-SVN: r130590
Diffstat (limited to 'libgomp')
-rw-r--r-- | libgomp/ChangeLog | 4 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/private-1.c | 54 |
2 files changed, 58 insertions, 0 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index ea5a6b3..76293bd 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,7 @@ +2007-12-03 Jakub Jelinek <jakub@redhat.com> + + * testsuite/libgomp.c/private-1.c: New test. + 2007-11-29 Andris Pavenis <andris.pavenis@iki.fi> Paolo Bonzini <bonzini@gnu.org> diff --git a/libgomp/testsuite/libgomp.c/private-1.c b/libgomp/testsuite/libgomp.c/private-1.c new file mode 100644 index 0000000..1d3659b --- /dev/null +++ b/libgomp/testsuite/libgomp.c/private-1.c @@ -0,0 +1,54 @@ +extern void abort (void); + +int a = 18; + +void +f1 (int i, int j, int k) +{ + int l = 6, m = 7, n = 8; +#pragma omp parallel private(j, m) shared(k, n) firstprivate(i, l) \ + num_threads(1) + { + j = 6; + m = 5; + if (++a != 19 || ++i != 9 || j != 6 || ++l != 7 || m != 5 || ++n != 9) + #pragma omp atomic + k++; + } + if (a != 19 || i != 8 || j != 26 || k != 0 || l != 6 || m != 7 || n != 9) + abort (); +} + +int v1 = 1, v2 = 2, v5 = 5; +int err; + +void +f2 (void) +{ + int v3 = 3; +#pragma omp sections private (v1) firstprivate (v2) + { + #pragma omp section + { + int v4 = 4; + v1 = 7; + #pragma omp parallel num_threads(1) firstprivate(v1, v2, v3, v4) + { + if (++v1 != 8 || ++v2 != 3 || ++v3 != 4 || ++v4 != 5 || ++v5 != 6) + err = 1; + } + if (v1 != 7 || v2 != 2 || v3 != 3 || v4 != 4 || v5 != 6) + abort (); + if (err) + abort (); + } + } +} + +int +main (void) +{ + f1 (8, 26, 0); + f2 (); + return 0; +} |