[to-be-committed] [RISC-V] Use Zbkb for general 64 bit constants when profitable
[official-gcc.git] / gcc / testsuite / gfortran.dg / coarray_atomic_3.f90
bloba3c4264e68e91e2ec565ca6c79292c4bc41e84f7
1 ! { dg-do compile }
2 ! { dg-options "-fcoarray=single -std=f2008ts -fmax-errors=200" }
4 use iso_fortran_env, only: atomic_int_kind, atomic_logical_kind
5 implicit none
7 intrinsic :: atomic_define
8 intrinsic :: atomic_ref
9 intrinsic :: atomic_cas
10 intrinsic :: atomic_add
11 intrinsic :: atomic_and
12 intrinsic :: atomic_or
13 intrinsic :: atomic_xor
14 intrinsic :: atomic_fetch_add
15 intrinsic :: atomic_fetch_and
16 intrinsic :: atomic_fetch_or
17 intrinsic :: atomic_fetch_xor
18 integer(atomic_int_kind) :: caf[*], var
19 logical(atomic_logical_kind) :: caf_log[*], var2
20 integer :: stat
21 integer(1) :: var3, caf0[*]
22 logical(1) :: var4, caf0_log[*]
24 call atomic_define(caf[1], 2_2, stat=stat)
25 call atomic_define(atom=caf_log[1], value=.false._2)
26 call atomic_define(caf_log[1], 2) ! { dg-error "shall have the same type as 'atom'" }
27 call atomic_define(var, 2_2, stat=stat) ! { dg-error "shall be a coarray or coindexed" }
28 call atomic_define(caf0, 2_2, stat=stat) ! { dg-error "integer of ATOMIC_INT_KIND or a logical of ATOMIC_LOGICAL_KIND" }
29 call atomic_define(var2, 2_2, stat=stat) ! { dg-error "shall be a coarray or coindexed" }
30 call atomic_define(caf0_log, 2_2, stat=stat) ! { dg-error "integer of ATOMIC_INT_KIND or a logical of ATOMIC_LOGICAL_KIND" }
32 call atomic_ref(var3, caf[1], stat=stat)
33 call atomic_ref(value=var4, atom=caf_log[1])
34 call atomic_ref(var, caf_log[1]) ! { dg-error "shall have the same type as 'atom'" }
35 call atomic_ref(var, var) ! { dg-error "shall be a coarray or coindexed" }
36 call atomic_ref(var, caf0) ! { dg-error "integer of ATOMIC_INT_KIND or a logical of ATOMIC_LOGICAL_KIND" }
37 call atomic_ref(var, caf0_log) ! { dg-error "integer of ATOMIC_INT_KIND or a logical of ATOMIC_LOGICAL_KIND" }
39 call atomic_cas(caf[1], var, 2_4, 1_1, stat=stat)
40 call atomic_cas(caf[1], var, 2_2, 1_1, stat=stat) ! { dg-error "'compare' argument of 'atomic_cas' intrinsic at .1. must be the same type and kind as 'atom'" }
41 call atomic_cas(caf[1], var3, 2_2, 1_1, stat=stat) ! { dg-error "'old' argument of 'atomic_cas' intrinsic at .1. must be the same type and kind as 'atom'" }
42 call atomic_cas(caf[1], var3, 2_4, .false._4, stat=stat) ! { dg-error "shall have the same type as 'atom'" }
43 call atomic_cas(caf0[1], var, 2_4, 1_1, stat=stat) ! { dg-error "shall be an integer of ATOMIC_INT_KIND or a logical of ATOMIC_LOGICAL_KIND" }
44 call atomic_cas(var, var, 2_4, 1_1, stat=stat) ! { dg-error "shall be a coarray or coindexed" }
45 call atomic_cas(caf_log[1], var2, .true._4, .false._1, stat=stat)
46 call atomic_cas(caf_log[1], var2, .true._2, .false._1, stat=stat) ! { dg-error "'compare' argument of 'atomic_cas' intrinsic at .1. must be the same type and kind as 'atom'" }
47 call atomic_cas(caf_log[1], var4, .true._4, .false._1, stat=stat) ! { dg-error "'old' argument of 'atomic_cas' intrinsic at .1. must be the same type and kind as 'atom'" }
48 call atomic_cas(caf_log[1], var4, .true._4, 4_4, stat=stat) ! { dg-error "shall have the same type as 'atom'" }
49 call atomic_cas(atom=caf0_log[1], old=var4, compare=.true._4, new=.false._4, stat=stat) ! { dg-error "shall be an integer of ATOMIC_INT_KIND or a logical of ATOMIC_LOGICAL_KIND" }
50 call atomic_cas(var2, var4, .true._4, .false._4, stat=stat) ! { dg-error "shall be a coarray or coindexed" }
51 call atomic_cas(caf[1], var, 2_4, 1_1, stat=var3) ! { dg-error "'stat' argument of 'atomic_cas' intrinsic at .1. must be of kind 4" }
53 call atomic_add(atom=caf, value=2_4, stat=stat)
54 call atomic_add(caf, 2_2, stat=stat)
55 call atomic_add(caf, .false._2, stat=stat) ! { dg-error "shall have the same type as 'atom'" }
56 call atomic_add(caf_log, .false._2, stat=stat) ! { dg-error "shall be an integer of ATOMIC_INT_KIND" }
57 call atomic_add(var, 34._4) ! { dg-error "shall be a coarray or coindexed" }
58 call atomic_add(atom=caf, value=2_4, stat=var3) ! { dg-error "'stat' argument of 'atomic_add' intrinsic at .1. must be of kind 4" }
60 call atomic_and(caf, 2_4, stat=stat)
61 call atomic_and(atom=caf, value=2_2, stat=stat)
62 call atomic_and(caf, .false._2, stat=stat) ! { dg-error "shall have the same type as 'atom'" }
63 call atomic_and(caf_log, .false._2, stat=stat) ! { dg-error "shall be an integer of ATOMIC_INT_KIND" }
64 call atomic_and(var, 34._4) ! { dg-error "shall be a coarray or coindexed" }
65 call atomic_and(caf, 2_4, stat=var3) ! { dg-error "'stat' argument of 'atomic_and' intrinsic at .1. must be of kind 4" }
67 call atomic_or(caf, value=2_4, stat=stat)
68 call atomic_or(atom=caf, value=2_2, stat=stat)
69 call atomic_or(caf, .false._2, stat=stat) ! { dg-error "shall have the same type as 'atom'" }
70 call atomic_or(caf_log, .false._2, stat=stat) ! { dg-error "shall be an integer of ATOMIC_INT_KIND" }
71 call atomic_or(var, 34._4) ! { dg-error "shall be a coarray or coindexed" }
72 call atomic_or(caf, value=2_4, stat=var3) ! { dg-error "'stat' argument of 'atomic_or' intrinsic at .1. must be of kind 4" }
74 call atomic_xor(caf, 2_4, stat=stat)
75 call atomic_xor(atom=caf, value=2_2, stat=stat)
76 call atomic_xor(caf, .false._2, stat=stat) ! { dg-error "shall have the same type as 'atom'" }
77 call atomic_xor(caf_log, .false._2, stat=stat) ! { dg-error "shall be an integer of ATOMIC_INT_KIND" }
78 call atomic_xor(var, 34._4) ! { dg-error "shall be a coarray or coindexed" }
79 call atomic_xor(caf, 2_4, stat=var3) ! { dg-error "'stat' argument of 'atomic_xor' intrinsic at .1. must be of kind 4" }
81 call atomic_fetch_add(atom=caf, value=2_4, old=var, stat=stat)
82 call atomic_fetch_add(caf, 2_2, var)
83 call atomic_fetch_add(caf, .false._2, var, stat=stat) ! { dg-error "shall have the same type as 'atom'" }
84 call atomic_fetch_add(caf_log, .false._2, var2, stat=stat) ! { dg-error "shall be an integer of ATOMIC_INT_KIND" }
85 call atomic_fetch_add(var, 34._4, var) ! { dg-error "shall be a coarray or coindexed" }
86 call atomic_fetch_add(caf, 2_2, var3) ! { dg-error "must be the same type and kind as 'atom'" }
87 call atomic_fetch_add(atom=caf, value=2_4, old=var, stat=var3) ! { dg-error "'stat' argument of 'atomic_fetch_add' intrinsic at .1. must be of kind 4" }
89 call atomic_fetch_and(atom=caf, value=2_4, old=var, stat=stat)
90 call atomic_fetch_and(caf, 2_2, var)
91 call atomic_fetch_and(caf, .false._2, var, stat=stat) ! { dg-error "shall have the same type as 'atom'" }
92 call atomic_fetch_and(caf_log, .false._2, var2, stat=stat) ! { dg-error "shall be an integer of ATOMIC_INT_KIND" }
93 call atomic_fetch_and(var, 34._4, var) ! { dg-error "shall be a coarray or coindexed" }
94 call atomic_fetch_and(caf, 2_2, var3) ! { dg-error "must be the same type and kind as 'atom'" }
95 call atomic_fetch_and(atom=caf, value=2_4, old=var, stat=var3) ! { dg-error "'stat' argument of 'atomic_fetch_and' intrinsic at .1. must be of kind 4" }
97 call atomic_fetch_or(atom=caf, value=2_4, old=var, stat=stat)
98 call atomic_fetch_or(caf, 2_2, var)
99 call atomic_fetch_or(caf, .false._2, var, stat=stat) ! { dg-error "shall have the same type as 'atom'" }
100 call atomic_fetch_or(caf_log, .false._2, var2, stat=stat) ! { dg-error "shall be an integer of ATOMIC_INT_KIND" }
101 call atomic_fetch_or(var, 34._4, var) ! { dg-error "shall be a coarray or coindexed" }
102 call atomic_fetch_or(caf, 2_2, var3) ! { dg-error "must be the same type and kind as 'atom'" }
103 call atomic_fetch_or(atom=caf, value=2_4, old=var, stat=var3) ! { dg-error "'stat' argument of 'atomic_fetch_or' intrinsic at .1. must be of kind 4" }
105 call atomic_fetch_xor(atom=caf, value=2_4, old=var, stat=stat)
106 call atomic_fetch_xor(caf, 2_2, var)
107 call atomic_fetch_xor(caf, .false._2, var, stat=stat) ! { dg-error "shall have the same type as 'atom'" }
108 call atomic_fetch_xor(caf_log, .false._2, var2, stat=stat) ! { dg-error "shall be an integer of ATOMIC_INT_KIND" }
109 call atomic_fetch_xor(var, 34._4, var) ! { dg-error "shall be a coarray or coindexed" }
110 call atomic_fetch_xor(caf, 2_2, var3) ! { dg-error "must be the same type and kind as 'atom'" }
111 call atomic_fetch_xor(atom=caf, value=2_4, old=var, stat=var3) ! { dg-error "'stat' argument of 'atomic_fetch_xor' intrinsic at .1. must be of kind 4" }