2010-12-20 Tobias Burnus <burnus@net-b.de>
[official-gcc.git] / gcc / testsuite / gfortran.dg / gomp / omp_atomic1.f90
blob247f8ae50abb763adf4d4fcee442a1d15c8da8cb
1 ! { dg-do compile }
2 subroutine test_atomic
3 integer (kind = 4) :: a
4 integer :: b
5 real :: c, f
6 double precision :: d
7 integer, dimension (10) :: e
8 a = 1
9 b = 2
10 c = 3
11 d = 4
12 e = 5
13 f = 6
14 !$omp atomic
15 a = a + 4
16 !$omp atomic
17 b = 4 - b
18 !$omp atomic
19 c = c * 2
20 !$omp atomic
21 d = 2 / d
22 !$omp atomic
23 e = 1 ! { dg-error "must set a scalar variable" }
24 !$omp atomic
25 a = a ** 8 ! { dg-error "assignment operator must be" }
26 !$omp atomic
27 b = b + 3 + b ! { dg-error "cannot reference" }
28 !$omp atomic
29 c = c - f + 1 ! { dg-error "not mathematically equivalent to" }
30 !$omp atomic
31 a = ishft (a, 1) ! { dg-error "assignment intrinsic must be" }
32 !$omp atomic
33 c = min (c, 2.1, c) ! { dg-error "intrinsic arguments except one" }
34 !$omp atomic
35 a = max (b, e(1)) ! { dg-error "intrinsic argument must be 'a'" }
36 !$omp atomic
37 d = 12 ! { dg-error "assignment must have an operator" }
38 end subroutine test_atomic