diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/gomp/appendix-a/a.31.2.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/appendix-a/a.31.2.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/gomp/appendix-a/a.31.2.c b/gcc/testsuite/gcc.dg/gomp/appendix-a/a.31.2.c new file mode 100644 index 00000000000..f9da3f4fc20 --- /dev/null +++ b/gcc/testsuite/gcc.dg/gomp/appendix-a/a.31.2.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ + +void +a31_2 (float *x, int *y, int n) +{ + int i, b, b_p; + float a, a_p; + a = 0.0; + b = 0; +#pragma omp parallel shared(a, b, x, y, n) \ + private(a_p, b_p) + { + a_p = 0.0; + b_p = 0; +#pragma omp for private(i) + for (i = 0; i < n; i++) + { + a_p += x[i]; + b_p ^= y[i]; + } +#pragma omp critical + { + a += a_p; + b ^= b_p; + } + } +} |