aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/gomp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/gomp')
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-1.C99
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-10.C24
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-11.C306
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-12.C9
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-13.C43
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-15.C46
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-2.C23
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-3.C13
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-4.C24
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-7.C23
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-8.C21
-rw-r--r--gcc/testsuite/g++.dg/gomp/atomic-9.C13
-rw-r--r--gcc/testsuite/g++.dg/gomp/gomp.exp2
13 files changed, 1 insertions, 645 deletions
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-1.C b/gcc/testsuite/g++.dg/gomp/atomic-1.C
deleted file mode 100644
index 3e4bc569ba7..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-1.C
+++ /dev/null
@@ -1,99 +0,0 @@
-/* { dg-do compile } */
-
-int x;
-volatile int y;
-volatile unsigned char z;
-
-void f1(void)
-{
- #pragma omp atomic
- x++;
- #pragma omp atomic
- x--;
- #pragma omp atomic
- ++x;
- #pragma omp atomic
- --x;
- #pragma omp atomic
- x += 1;
- #pragma omp atomic
- x -= y;
- #pragma omp atomic
- x |= 1;
- #pragma omp atomic
- x &= 1;
- #pragma omp atomic
- x ^= 1;
- #pragma omp atomic
- x *= 3;
- #pragma omp atomic
- x /= 3;
- #pragma omp atomic
- x /= 3;
- #pragma omp atomic
- x <<= 3;
- #pragma omp atomic
- x >>= 3;
-}
-
-void f2(void)
-{
- #pragma omp atomic
- y++;
- #pragma omp atomic
- y--;
- #pragma omp atomic
- ++y;
- #pragma omp atomic
- --y;
- #pragma omp atomic
- y += 1;
- #pragma omp atomic
- y -= x;
- #pragma omp atomic
- y |= 1;
- #pragma omp atomic
- y &= 1;
- #pragma omp atomic
- y ^= 1;
- #pragma omp atomic
- y *= 3;
- #pragma omp atomic
- y /= 3;
- #pragma omp atomic
- y /= 3;
- #pragma omp atomic
- y <<= 3;
- #pragma omp atomic
- y >>= 3;
-}
-
-void f3(void)
-{
- #pragma omp atomic
- z++;
- #pragma omp atomic
- z--;
- #pragma omp atomic
- ++z;
- #pragma omp atomic
- --z;
- #pragma omp atomic
- z += 1;
- #pragma omp atomic
- z |= 1;
- #pragma omp atomic
- z &= 1;
- #pragma omp atomic
- z ^= 1;
- #pragma omp atomic
- z *= 3;
- #pragma omp atomic
- z /= 3;
- #pragma omp atomic
- z /= 3;
- #pragma omp atomic
- z <<= 3;
- #pragma omp atomic
- z >>= 3;
-}
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-10.C b/gcc/testsuite/g++.dg/gomp/atomic-10.C
deleted file mode 100644
index fe64f0f0631..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-10.C
+++ /dev/null
@@ -1,24 +0,0 @@
-// PR middle-end/28046
-// { dg-do compile }
-// { dg-options "-fopenmp -fdump-tree-ompexp" }
-
-int a[3], b;
-struct C { int x; int y; } c;
-
-int bar (void), *baz (void);
-
-void
-foo (void)
-{
-#pragma omp atomic
- a[2] += bar ();
-#pragma omp atomic
- b += bar ();
-#pragma omp atomic
- c.y += bar ();
-#pragma omp atomic
- *baz () += bar ();
-}
-
-// { dg-final { scan-tree-dump-times "__sync_fetch_and_add" 4 "ompexp" { target i?86-*-* x86_64-*-* ia64-*-* powerpc*-*-* alpha*-*-* } } }
-// { dg-final { cleanup-tree-dump "ompexp" } }
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-11.C b/gcc/testsuite/g++.dg/gomp/atomic-11.C
deleted file mode 100644
index 618c4c8e648..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-11.C
+++ /dev/null
@@ -1,306 +0,0 @@
-/* PR middle-end/45423 */
-/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple -g0" } */
-/* atomicvar should never be referenced in between the barrier and
- following #pragma omp atomic_load. */
-/* { dg-final { scan-tree-dump-not "barrier\[^#\]*atomicvar" "gimple" } } */
-/* { dg-final { cleanup-tree-dump "gimple" } } */
-
-#ifdef __cplusplus
-bool atomicvar, c;
-#else
-_Bool atomicvar, c;
-#endif
-int i, atomicvar2, c2;
-
-int
-foo (void)
-{
- #pragma omp barrier
- #pragma omp atomic
- atomicvar |= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar |= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar |= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar |= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar |= c;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar ^= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar ^= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar ^= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar ^= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar ^= c;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar &= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar &= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar &= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar &= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar &= c;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar += -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar += 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar += 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar += 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar += c;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar -= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar -= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar -= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar -= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar -= c;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar *= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar *= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar *= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar *= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar *= c;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar /= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar /= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar /= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar /= c;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar <<= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar <<= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar <<= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar <<= i;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar >>= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar >>= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar >>= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar >>= i;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar++;
- #pragma omp barrier
- #pragma omp atomic
- ++atomicvar;
- #pragma omp barrier
-#ifndef __cplusplus
- #pragma omp atomic
- atomicvar--;
- #pragma omp barrier
- #pragma omp atomic
- --atomicvar;
- #pragma omp barrier
-#endif
- return 0;
-}
-
-int
-bar (void)
-{
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 |= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 |= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 |= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 |= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 |= c2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 ^= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 ^= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 ^= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 ^= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 ^= c2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 &= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 &= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 &= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 &= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 &= c2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 += -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 += 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 += 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 += 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 += c2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 -= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 -= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 -= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 -= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 -= c2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 *= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 *= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 *= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 *= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 *= c2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 /= -1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 /= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 /= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 /= c2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 <<= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 <<= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 <<= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 <<= i;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 >>= 0;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 >>= 1;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 >>= 2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2 >>= i;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2++;
- #pragma omp barrier
- #pragma omp atomic
- ++atomicvar2;
- #pragma omp barrier
- #pragma omp atomic
- atomicvar2--;
- #pragma omp barrier
- #pragma omp atomic
- --atomicvar2;
- #pragma omp barrier
- return 0;
-}
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-12.C b/gcc/testsuite/g++.dg/gomp/atomic-12.C
deleted file mode 100644
index 6c1f965021d..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-12.C
+++ /dev/null
@@ -1,9 +0,0 @@
-/* PR middle-end/45423 */
-/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-gimple -g0 -O2" } */
-/* atomicvar should never be referenced in between the barrier and
- following #pragma omp atomic_load. */
-/* { dg-final { scan-tree-dump-not "barrier\[^#\]*atomicvar" "gimple" } } */
-/* { dg-final { cleanup-tree-dump "gimple" } } */
-
-#include "atomic-11.C"
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-13.C b/gcc/testsuite/g++.dg/gomp/atomic-13.C
deleted file mode 100644
index f8fc9d87257..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-13.C
+++ /dev/null
@@ -1,43 +0,0 @@
-/* PR middle-end/45423 */
-/* { dg-do compile } */
-/* { dg-options "-fopenmp" } */
-
-#ifdef __cplusplus
-bool *baz ();
-#else
-_Bool *baz ();
-#endif
-int *bar ();
-
-int
-foo (void)
-{
- #pragma omp barrier
- #pragma omp atomic
- (*bar ())++;
- #pragma omp barrier
- #pragma omp atomic
- ++(*bar ());
- #pragma omp barrier
- #pragma omp atomic
- (*bar ())--;
- #pragma omp barrier
- #pragma omp atomic
- --(*bar ());
- #pragma omp barrier
- #pragma omp atomic
- (*baz ())++;
- #pragma omp barrier
- #pragma omp atomic
- ++(*baz ());
-#ifndef __cplusplus
- #pragma omp barrier
- #pragma omp atomic
- (*baz ())--;
- #pragma omp barrier
- #pragma omp atomic
- --(*baz ());
- #pragma omp barrier
-#endif
- return 0;
-}
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-15.C b/gcc/testsuite/g++.dg/gomp/atomic-15.C
deleted file mode 100644
index 95eb8b4534d..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-15.C
+++ /dev/null
@@ -1,46 +0,0 @@
-// { dg-do compile }
-// { dg-options "-fopenmp" }
-
-int x = 6;
-
-int
-main ()
-{
- int v;
- #pragma omp atomic
- x = x * 7 + 6; // { dg-error "expected" }
- #pragma omp atomic
- x = x * 7 ^ 6; // { dg-error "expected" }
- #pragma omp atomic update
- x = x - 8 + 6; // { dg-error "expected" }
- #pragma omp atomic
- x = x ^ 7 | 2; // { dg-error "expected" }
- #pragma omp atomic
- x = x / 7 * 2; // { dg-error "expected" }
- #pragma omp atomic
- x = x / 7 / 2; // { dg-error "expected" }
- #pragma omp atomic capture
- v = x = x | 6; // { dg-error "invalid operator" }
- #pragma omp atomic capture
- { v = x; x = x * 7 + 6; } // { dg-error "expected" }
- #pragma omp atomic capture
- { v = x; x = x * 7 ^ 6; } // { dg-error "expected" }
- #pragma omp atomic capture
- { v = x; x = x - 8 + 6; } // { dg-error "expected" }
- #pragma omp atomic capture
- { v = x; x = x ^ 7 | 2; } // { dg-error "expected" }
- #pragma omp atomic capture
- { v = x; x = x / 7 * 2; } // { dg-error "expected" }
- #pragma omp atomic capture
- { v = x; x = x / 7 / 2; } // { dg-error "expected" }
- #pragma omp atomic capture
- { x = x * 7 + 6; v = x; } // { dg-error "expected" }
- #pragma omp atomic capture
- { x = x * 7 ^ 6; v = x; } // { dg-error "expected" }
- #pragma omp atomic capture
- { x = x - 8 + 6; v = x; } // { dg-error "expected" }
- #pragma omp atomic capture
- { x = x ^ 7 | 2; v = x; } // { dg-error "expected" }
- (void) v;
- return 0;
-}
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-2.C b/gcc/testsuite/g++.dg/gomp/atomic-2.C
deleted file mode 100644
index 720ec9e8ba0..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-2.C
+++ /dev/null
@@ -1,23 +0,0 @@
-/* { dg-do compile } */
-
-float x, y;
-
-void f1(void)
-{
- #pragma omp atomic
- x++;
- #pragma omp atomic
- x--;
- #pragma omp atomic
- ++x;
- #pragma omp atomic
- --x;
- #pragma omp atomic
- x += 1;
- #pragma omp atomic
- x -= y;
- #pragma omp atomic
- x *= 3;
- #pragma omp atomic
- x /= 3;
-}
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-3.C b/gcc/testsuite/g++.dg/gomp/atomic-3.C
deleted file mode 100644
index 7ea792d3457..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-3.C
+++ /dev/null
@@ -1,13 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-ompexp" } */
-
-int *xyzzy;
-
-void f1(void)
-{
- #pragma omp atomic
- xyzzy++;
-}
-
-/* { dg-final { scan-tree-dump-times "xyzzy, 4" 1 "ompexp" { target i?86-*-* x86_64-*-* ia64-*-* powerpc*-*-* alpha*-*-* } } } */
-/* { dg-final { cleanup-tree-dump "ompexp" } } */
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-4.C b/gcc/testsuite/g++.dg/gomp/atomic-4.C
deleted file mode 100644
index 7f27370d535..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-4.C
+++ /dev/null
@@ -1,24 +0,0 @@
-/* { dg-do compile } */
-
-int a[4];
-int *p;
-struct S { int x; int y[4]; } s;
-int *bar(void);
-
-void f1(void)
-{
- #pragma omp atomic
- a[4] += 1;
- #pragma omp atomic
- *p += 1;
- #pragma omp atomic
- s.x += 1;
- #pragma omp atomic
- s.y[*p] += 1;
- #pragma omp atomic
- s.y[*p] *= 42;
- #pragma omp atomic
- *bar() += 1;
- #pragma omp atomic
- *bar() *= 42;
-}
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-7.C b/gcc/testsuite/g++.dg/gomp/atomic-7.C
deleted file mode 100644
index 612e97f4530..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-7.C
+++ /dev/null
@@ -1,23 +0,0 @@
-/* { dg-do compile } */
-
-double x, y;
-
-void f2(void)
-{
- #pragma omp atomic
- y++;
- #pragma omp atomic
- y--;
- #pragma omp atomic
- ++y;
- #pragma omp atomic
- --y;
- #pragma omp atomic
- y += 1;
- #pragma omp atomic
- y -= x;
- #pragma omp atomic
- y *= 3;
- #pragma omp atomic
- y /= 3;
-}
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-8.C b/gcc/testsuite/g++.dg/gomp/atomic-8.C
deleted file mode 100644
index 2f04151f0ed..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-8.C
+++ /dev/null
@@ -1,21 +0,0 @@
-/* { dg-do compile } */
-
-long double z;
-
-void f3(void)
-{
- #pragma omp atomic
- z++;
- #pragma omp atomic
- z--;
- #pragma omp atomic
- ++z;
- #pragma omp atomic
- --z;
- #pragma omp atomic
- z += 1;
- #pragma omp atomic
- z *= 3;
- #pragma omp atomic
- z /= 3;
-}
diff --git a/gcc/testsuite/g++.dg/gomp/atomic-9.C b/gcc/testsuite/g++.dg/gomp/atomic-9.C
deleted file mode 100644
index 2fafbd4097a..00000000000
--- a/gcc/testsuite/g++.dg/gomp/atomic-9.C
+++ /dev/null
@@ -1,13 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-fopenmp -fdump-tree-ompexp" } */
-
-volatile int *bar(void);
-
-void f1(void)
-{
- #pragma omp atomic
- *bar() += 1;
-}
-
-/* { dg-final { scan-tree-dump-times "__sync_fetch_and_add" 1 "ompexp" { target i?86-*-* x86_64-*-* ia64-*-* powerpc*-*-* alpha*-*-* } } } */
-/* { dg-final { cleanup-tree-dump "ompexp" } } */
diff --git a/gcc/testsuite/g++.dg/gomp/gomp.exp b/gcc/testsuite/g++.dg/gomp/gomp.exp
index 9f60bc1c5f3..b99d302ddf5 100644
--- a/gcc/testsuite/g++.dg/gomp/gomp.exp
+++ b/gcc/testsuite/g++.dg/gomp/gomp.exp
@@ -27,7 +27,7 @@ if ![check_effective_target_fopenmp] {
dg-init
# Main loop.
-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.C]] "" "-fopenmp"
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.C $srcdir/c-c++-common/gomp/*.c]] "" "-fopenmp"
# All done.
dg-finish