| ! { dg-do run } |
| ! |
| ! PR fortran/18918 |
| ! |
| ! Basic atomic def/ref test |
| ! |
| |
| use iso_fortran_env, only: atomic_int_kind, atomic_logical_kind |
| implicit none |
| integer(atomic_int_kind) :: a(1)[*] |
| logical(atomic_logical_kind) :: c[*] |
| intrinsic :: atomic_define |
| intrinsic :: atomic_ref |
| integer(8) :: b |
| logical(1) :: d |
| |
| call atomic_define(a(1), 7_2) |
| call atomic_ref(b, a(1)) |
| if (b /= a(1)) call abort() |
| |
| call atomic_define(c, .false.) |
| call atomic_ref(d, c[this_image()]) |
| if (d .neqv. .false.) call abort() |
| call atomic_define(c[this_image()], .true.) |
| call atomic_ref(d, c) |
| if (d .neqv. .true.) call abort() |
| end |