2 /* { dg-do compile } */
3 /* { dg-options "-fopenmp" } */
10 #pragma omp atomic capture
11 a
= (float)a
+ b
; /* { dg-error "invalid operator" } */
12 #pragma omp atomic read
13 (float) a
= b
; /* { dg-error "lvalue required" } */
14 #pragma omp atomic write
15 (float) a
= b
; /* { dg-error "lvalue required" } */
16 #pragma omp atomic read
17 a
= (float) b
; /* { dg-error "lvalue required" } */
18 #pragma omp atomic capture
19 (float) a
= b
+= c
; /* { dg-error "lvalue required" } */
20 #pragma omp atomic capture
21 { a
+= b
; (float) c
= a
; } /* { dg-error "lvalue required" } */
22 #pragma omp atomic capture
23 { a
+= b
; c
= (float) a
; } /* { dg-error "uses two different expressions for memory" } */
24 #pragma omp atomic capture
25 a
= (int)a
+ b
; /* { dg-error "invalid operator" } */
26 #pragma omp atomic read
27 (int) a
= b
; /* { dg-error "lvalue required" } */
28 #pragma omp atomic write
29 (int) a
= b
; /* { dg-error "lvalue required" } */
30 #pragma omp atomic read
31 a
= (int) b
; /* { dg-error "lvalue required" } */
32 #pragma omp atomic capture
33 (int) a
= b
+= c
; /* { dg-error "lvalue required" } */
34 #pragma omp atomic capture
35 { a
+= b
; (int) c
= a
; } /* { dg-error "lvalue required" } */
36 #pragma omp atomic capture
37 { a
+= b
; c
= (int) a
; } /* { dg-error "lvalue required" } */