5094caa515402eb1690effac7549afff04d8b6a1
[gcc.git] / gcc / testsuite / gfortran.dg / gomp / atomic-2.f90
1 ! { dg-do compile }
2
3 subroutine bar
4 integer :: i, v
5 real :: f
6 !$omp atomic update acq_rel hint("abc") ! { dg-error "OMP ATOMIC UPDATE at .1. incompatible with ACQ_REL or ACQUIRE clauses" }
7 ! { dg-error "HINT clause at .1. requires a scalar INTEGER expression" "" { target *-*-* } .-1 }
8 ! { dg-error "Value of HINT clause at .1. shall be a valid constant hint expression" "" { target *-*-* } .-2 }
9 i = i + 1
10 !$omp end atomic
11
12 !$omp atomic acq_rel capture ! { dg-error "OMP ATOMIC UPDATE at .1. incompatible with ACQ_REL or ACQUIRE clauses" }
13 i = i + 1
14 v = i
15 !$omp end atomic
16
17 !$omp atomic capture,acq_rel , hint (1), update ! { dg-error "OMP ATOMIC UPDATE at .1. incompatible with ACQ_REL or ACQUIRE clauses" }
18 i = i + 1
19 v = i
20 !$omp end atomic
21
22 !$omp atomic hint(0),acquire capture ! { dg-error "OMP ATOMIC UPDATE at .1. incompatible with ACQ_REL or ACQUIRE clauses" }
23 i = i + 1
24 v = i
25 !$omp end atomic
26
27 !$omp atomic write capture ! { dg-error "OMP ATOMIC at .1. with CAPTURE clause must be UPDATE" }
28 i = 2
29 v = i
30 !$omp end atomic
31
32 !$omp atomic foobar ! { dg-error "Failed to match clause" }
33 end