Merge from mainline
[official-gcc.git] / libgomp / testsuite / libgomp.fortran / omp_atomic1.f90
blobf9ce94b9ad7a3088aa84d4bb58696d53ac1a4440
1 ! { dg-do run }
2 integer (kind = 4) :: a
3 integer (kind = 2) :: b
4 real :: c, f
5 double precision :: d
6 integer, dimension (10) :: e
7 a = 1
8 b = 2
9 c = 3
10 d = 4
11 e = 5
12 f = 6
13 !$omp atomic
14 a = a + 4
15 !$omp atomic
16 b = 4 - b
17 !$omp atomic
18 c = c * 2
19 !$omp atomic
20 d = 2 / d
21 if (a .ne. 5 .or. b .ne. 2 .or. c .ne. 6 .or. d .ne. 0.5) call abort
22 d = 1.2
23 !$omp atomic
24 a = a + c + d
25 !$omp atomic
26 b = b - (a + c + d)
27 if (a .ne. 12 .or. b .ne. -17) call abort
28 !$omp atomic
29 a = c + d + a
30 !$omp atomic
31 b = a + c + d - b
32 if (a .ne. 19 .or. b .ne. 43) call abort
33 !$omp atomic
34 b = (a + c + d) - b
35 a = 32
36 !$omp atomic
37 a = a / 3.4
38 if (a .ne. 9 .or. b .ne. -16) call abort
39 end