diff gcc/testsuite/c-c++-common/gomp/atomic-18.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/c-c++-common/gomp/atomic-18.c	Thu Feb 13 11:34:05 2020 +0900
@@ -0,0 +1,35 @@
+int i, v;
+float f;
+
+void
+foo (int j)
+{
+  #pragma omp atomic update,update	/* { dg-error "too many atomic clauses" } */
+  i = i + 1;
+  #pragma omp atomic seq_cst release	/* { dg-error "too many memory order clauses" } */
+  i = i + 1;
+  #pragma omp atomic read,release	/* { dg-error "incompatible with 'acq_rel' or 'release' clauses" } */
+  v = i;
+  #pragma omp atomic acq_rel read	/* { dg-error "incompatible with 'acq_rel' or 'release' clauses" } */
+  v = i;
+  #pragma omp atomic write acq_rel	/* { dg-error "incompatible with 'acq_rel' or 'acquire' clauses" } */
+  i = v;
+  #pragma omp atomic acquire , write	/* { dg-error "incompatible with 'acq_rel' or 'acquire' clauses" } */
+  i = v;
+  #pragma omp atomic update ,acquire	/* { dg-error "incompatible with 'acq_rel' or 'acquire' clauses" } */
+  i = i + 1;
+  #pragma omp atomic acq_rel update	/* { dg-error "incompatible with 'acq_rel' or 'acquire' clauses" } */
+  i = i + 1;
+  #pragma omp atomic acq_rel,hint(0)	/* { dg-error "incompatible with 'acq_rel' or 'acquire' clauses" } */
+  i = i + 1;
+  #pragma omp atomic acquire		/* { dg-error "incompatible with 'acq_rel' or 'acquire' clauses" } */
+  i = i + 1;
+  #pragma omp atomic capture hint (0) capture	/* { dg-error "too many atomic clauses" } */
+  v = i = i + 1;
+  #pragma omp atomic hint(j + 2)	/* { dg-error "constant integer expression" } */
+  i = i + 1;
+  #pragma omp atomic hint(f)		/* { dg-error "integ" } */
+  i = i + 1;
+  #pragma omp atomic foobar		/* { dg-error "expected 'read', 'write', 'update', 'capture', 'seq_cst', 'acq_rel', 'release', 'relaxed' or 'hint' clause" } */
+  i = i + 1;				/* { dg-error "expected end of line before" "" { target *-*-* } .-1 } */
+}