1/* { dg-do compile } */ 2 3int x; 4const int y; 5int bar(void); 6 7void f1(void) 8{ 9 register int z; 10 11 #pragma omp atomic 12 x %= 2; /* { dg-error "invalid operator" } */ 13 #pragma omp atomic 14 x = x + 1; 15 #pragma omp atomic 16 x = 1; /* { dg-error "invalid form" } */ 17 #pragma omp atomic 18 ++y; /* { dg-error "read-only variable" } */ 19 #pragma omp atomic 20 y--; /* { dg-error "read-only variable" } */ 21 #pragma omp atomic 22 y += 1; /* { dg-error "read-only variable" } */ 23 #pragma omp atomic 24 z += 1; /* { dg-error "register variable" } */ 25 #pragma omp atomic 26 bar(); /* { dg-error "invalid operator" } */ 27 #pragma omp atomic 28 bar() += 1; /* { dg-error "lvalue required" } */ 29 #pragma omp atomic a /* { dg-error "expected end of line" } */ 30 x++; 31 #pragma omp atomic 32 ; /* { dg-error "expected expression" } */ 33 #pragma omp atomic 34 #pragma omp atomic /* { dg-error "expected expression" } */ 35 ; 36 /* Check that we didn't get stuck on the pragma eol marker. */ 37 undef; /* { dg-error "" } */ 38 /* { dg-message "undeclared identifier is reported only once" "reminder" { target *-*-* } 37 } */ 39} 40