comparison libgomp/testsuite/libgomp.fortran/omp_atomic2.f90 @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents a06113de4d67
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 ! { dg-do run } 1 ! { dg-do run }
2 ! { dg-options "-std=legacy" }
3
2 real, dimension (20) :: r 4 real, dimension (20) :: r
3 integer, dimension (20) :: d 5 integer, dimension (20) :: d
4 integer :: i, j, k, n 6 integer :: i, j, k, n
5 integer (kind = 2) :: a, b, c 7 integer (kind = 2) :: a, b, c
6 8
9 10 d(i) = 21 - i 11 10 d(i) = 21 - i
10 12
11 n = 20 13 n = 20
12 call foo (r, d, n) 14 call foo (r, d, n)
13 15
14 if (n .ne. 22) call abort 16 if (n .ne. 22) STOP 1
15 if (any (r .ne. 33)) call abort 17 if (any (r .ne. 33)) STOP 2
16 18
17 i = 1 19 i = 1
18 j = 18 20 j = 18
19 k = 23 21 k = 23
20 !$omp atomic 22 !$omp atomic
21 i = min (i, j, k, n) 23 i = min (i, j, k, n)
22 if (i .ne. 1) call abort 24 if (i .ne. 1) STOP 3
23 !$omp atomic 25 !$omp atomic
24 i = max (j, n, k, i) 26 i = max (j, n, k, i)
25 if (i .ne. 23) call abort 27 if (i .ne. 23) STOP 4
26 28
27 a = 1 29 a = 1
28 b = 18 30 b = 18
29 c = 23 31 c = 23
30 !$omp atomic 32 !$omp atomic
31 a = min (a, b, c) 33 a = min (a, b, c)
32 if (a .ne. 1) call abort 34 if (a .ne. 1) STOP 5
33 !$omp atomic 35 !$omp atomic
34 a = max (a, b, c) 36 a = max (a, b, c)
35 if (a .ne. 23) call abort 37 if (a .ne. 23) STOP 6
36 38
37 contains 39 contains
38 function bar (i) 40 function bar (i)
39 real bar 41 real bar
40 integer i 42 integer i