1/* { dg-do compile } */
2
3int x;
4const int y = 0;
5int bar(void);
6
7void f1(void)
8{
9  #pragma omp atomic
10    x %= 2;		/* { dg-error "invalid operator" } */
11  #pragma omp atomic
12    x = x + 1;		/* { dg-error "invalid operator" } */
13  #pragma omp atomic
14    x = 1;		/* { dg-error "invalid operator" } */
15  #pragma omp atomic
16    ++y;		/* { dg-error "read-only variable" } */
17  #pragma omp atomic
18    y--;		/* { dg-error "read-only variable" } */
19  #pragma omp atomic
20    y += 1;		/* { dg-error "read-only variable" } */
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" } */
26    x++;
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}
35