111
|
1 /* { dg-do compile } */
|
|
2
|
|
3 int x;
|
|
4 const int y = 0;
|
|
5 int bar(void);
|
|
6
|
|
7 void f1(void)
|
|
8 {
|
|
9 #pragma omp atomic
|
|
10 x %= 2; /* { dg-error "invalid operator" } */
|
|
11 #pragma omp atomic
|
|
12 x = x + 1;
|
|
13 #pragma omp atomic
|
|
14 x = 1; /* { dg-error "invalid form" } */
|
145
|
15 #pragma omp atomic /* { dg-error "read-only variable" } */
|
111
|
16 ++y; /* { dg-error "read-only variable" } */
|
145
|
17 #pragma omp atomic /* { dg-error "read-only variable" } */
|
111
|
18 y--; /* { dg-error "read-only variable" } */
|
145
|
19 #pragma omp atomic /* { dg-error "read-only variable" } */
|
|
20 y += 1;
|
111
|
21 #pragma omp atomic
|
|
22 bar(); /* { dg-error "invalid operator" } */
|
|
23 #pragma omp atomic
|
|
24 bar() += 1; /* { dg-error "lvalue required" } */
|
|
25 #pragma omp atomic a /* { dg-error "expected end of line" } */
|
145
|
26 x++; /* { dg-error "expected 'read', 'write', 'update', 'capture', 'seq_cst', 'acq_rel', 'release', 'relaxed' or 'hint' clause" "" { target *-*-* } .-1 } */
|
111
|
27 #pragma omp atomic
|
|
28 ; /* { dg-error "expected primary-expression" } */
|
|
29 #pragma omp atomic
|
|
30 #pragma omp atomic /* { dg-error "not allowed" } */
|
|
31 ;
|
|
32 /* Check that we didn't get stuck on the pragma eol marker. */
|
|
33 undef; /* { dg-error "" } */
|
|
34 }
|