@@ -17,21 +17,21 @@ program OmpAtomic
1717! $omp atomic
1818 x = 1 + x
1919! $omp atomic
20- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level + operator
20+ ! ERROR: The atomic variable x should appear as an argument of the top-level + operator
2121 x = y + 1
2222! $omp atomic
23- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level + operator
23+ ! ERROR: The atomic variable x should appear as an argument of the top-level + operator
2424 x = 1 + y
2525
2626! $omp atomic
2727 x = x - 1
2828! $omp atomic
2929 x = 1 - x
3030! $omp atomic
31- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level - operator
31+ ! ERROR: The atomic variable x should appear as an argument of the top-level - operator
3232 x = y - 1
3333! $omp atomic
34- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level - operator
34+ ! ERROR: The atomic variable x should appear as an argument of the top-level - operator
3535 x = 1 - y
3636
3737! $omp atomic
@@ -50,64 +50,64 @@ program OmpAtomic
5050! $omp atomic
5151 x = 1 / x
5252! $omp atomic
53- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level / operator
53+ ! ERROR: The atomic variable x should appear as an argument of the top-level / operator
5454 x = y/ 1
5555! $omp atomic
56- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level / operator
56+ ! ERROR: The atomic variable x should appear as an argument of the top-level / operator
5757 x = 1 / y
5858
5959! $omp atomic
6060 m = m .AND. n
6161! $omp atomic
6262 m = n .AND. m
6363! $omp atomic
64- ! ERROR: The atomic variable m should occur exactly once among the arguments of the top-level AND operator
64+ ! ERROR: The atomic variable m should appear as an argument of the top-level AND operator
6565 m = n .AND. l
6666
6767! $omp atomic
6868 m = m .OR. n
6969! $omp atomic
7070 m = n .OR. m
7171! $omp atomic
72- ! ERROR: The atomic variable m should occur exactly once among the arguments of the top-level OR operator
72+ ! ERROR: The atomic variable m should appear as an argument of the top-level OR operator
7373 m = n .OR. l
7474
7575! $omp atomic
7676 m = m .EQV. n
7777! $omp atomic
7878 m = n .EQV. m
7979! $omp atomic
80- ! ERROR: The atomic variable m should occur exactly once among the arguments of the top-level EQV operator
80+ ! ERROR: The atomic variable m should appear as an argument of the top-level EQV operator
8181 m = n .EQV. l
8282
8383! $omp atomic
8484 m = m .NEQV. n
8585! $omp atomic
8686 m = n .NEQV. m
8787! $omp atomic
88- ! ERROR: The atomic variable m should occur exactly once among the arguments of the top-level NEQV/EOR operator
88+ ! ERROR: The atomic variable m should appear as an argument of the top-level NEQV/EOR operator
8989 m = n .NEQV. l
9090
9191! $omp atomic update
9292 x = x + 1
9393! $omp atomic update
9494 x = 1 + x
9595! $omp atomic update
96- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level + operator
96+ ! ERROR: The atomic variable x should appear as an argument of the top-level + operator
9797 x = y + 1
9898! $omp atomic update
99- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level + operator
99+ ! ERROR: The atomic variable x should appear as an argument of the top-level + operator
100100 x = 1 + y
101101
102102! $omp atomic update
103103 x = x - 1
104104! $omp atomic update
105105 x = 1 - x
106106! $omp atomic update
107- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level - operator
107+ ! ERROR: The atomic variable x should appear as an argument of the top-level - operator
108108 x = y - 1
109109! $omp atomic update
110- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level - operator
110+ ! ERROR: The atomic variable x should appear as an argument of the top-level - operator
111111 x = 1 - y
112112
113113! $omp atomic update
@@ -126,42 +126,42 @@ program OmpAtomic
126126! $omp atomic update
127127 x = 1 / x
128128! $omp atomic update
129- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level / operator
129+ ! ERROR: The atomic variable x should appear as an argument of the top-level / operator
130130 x = y/ 1
131131! $omp atomic update
132- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level / operator
132+ ! ERROR: The atomic variable x should appear as an argument of the top-level / operator
133133 x = 1 / y
134134
135135! $omp atomic update
136136 m = m .AND. n
137137! $omp atomic update
138138 m = n .AND. m
139139! $omp atomic update
140- ! ERROR: The atomic variable m should occur exactly once among the arguments of the top-level AND operator
140+ ! ERROR: The atomic variable m should appear as an argument of the top-level AND operator
141141 m = n .AND. l
142142
143143! $omp atomic update
144144 m = m .OR. n
145145! $omp atomic update
146146 m = n .OR. m
147147! $omp atomic update
148- ! ERROR: The atomic variable m should occur exactly once among the arguments of the top-level OR operator
148+ ! ERROR: The atomic variable m should appear as an argument of the top-level OR operator
149149 m = n .OR. l
150150
151151! $omp atomic update
152152 m = m .EQV. n
153153! $omp atomic update
154154 m = n .EQV. m
155155! $omp atomic update
156- ! ERROR: The atomic variable m should occur exactly once among the arguments of the top-level EQV operator
156+ ! ERROR: The atomic variable m should appear as an argument of the top-level EQV operator
157157 m = n .EQV. l
158158
159159! $omp atomic update
160160 m = m .NEQV. n
161161! $omp atomic update
162162 m = n .NEQV. m
163163! $omp atomic update
164- ! ERROR: The atomic variable m should occur exactly once among the arguments of the top-level NEQV/EOR operator
164+ ! ERROR: The atomic variable m should appear as an argument of the top-level NEQV/EOR operator
165165 m = n .NEQV. l
166166
167167end program OmpAtomic
@@ -184,27 +184,30 @@ subroutine more_invalid_atomic_update_stmts()
184184 x = 1
185185
186186 ! $omp atomic update
187- ! ERROR: Within atomic operation a and a*b access the same storage
187+ ! ERROR: The atomic variable a cannot be a proper subexpression of an argument (here: a*b) in the update operation
188188 a = a * b + a
189189
190190 ! $omp atomic
191- ! ERROR: The atomic variable a should occur exactly once among the arguments of the top-level * operator
191+ ! ERROR: The atomic variable a cannot be a proper subexpression of an argument (here: (a+9_4)) in the update operation
192+ ! ERROR: The atomic variable a should appear as an argument of the top-level * operator
192193 a = b * (a + 9 )
193194
194195 ! $omp atomic update
195- ! ERROR: Within atomic operation a and ( a+b) access the same storage
196+ ! ERROR: The atomic variable a cannot be a proper subexpression of an argument (here: ( a+b)) in the update operation
196197 a = a * (a + b)
197198
198199 ! $omp atomic
199- ! ERROR: Within atomic operation a and ( b+a) access the same storage
200+ ! ERROR: The atomic variable a cannot be a proper subexpression of an argument (here: ( b+a)) in the update operation
200201 a = (b + a) * a
201202
202203 ! $omp atomic
203- ! ERROR: The atomic variable a should occur exactly once among the arguments of the top-level + operator
204+ ! ERROR: The atomic variable a cannot be a proper subexpression of an argument (here: a*b) in the update operation
205+ ! ERROR: The atomic variable a should appear as an argument of the top-level + operator
204206 a = a * b + c
205207
206208 ! $omp atomic update
207- ! ERROR: The atomic variable a should occur exactly once among the arguments of the top-level + operator
209+ ! ERROR: The atomic variable a cannot be a proper subexpression of an argument (here: a+b) in the update operation
210+ ! ERROR: The atomic variable a should appear as an argument of the top-level + operator
208211 a = a + b + c
209212
210213 ! $omp atomic
@@ -219,11 +222,12 @@ subroutine more_invalid_atomic_update_stmts()
219222
220223 ! $omp atomic update
221224 ! ERROR: No intrinsic or user-defined ASSIGNMENT(=) matches scalar REAL(4) and rank 1 array of REAL(4)
222- ! ERROR: The atomic variable x should occur exactly once among the arguments of the top-level / operator
225+ ! ERROR: The atomic variable x cannot be a proper subexpression of an argument (here: x*y) in the update operation
226+ ! ERROR: The atomic variable x should appear as an argument of the top-level / operator
223227 x = x * y / z
224228
225229 ! $omp atomic
226- ! ERROR: The atomic variable p%m should occur exactly once among the arguments of the top-level + operator
230+ ! ERROR: The atomic variable p%m should appear as an argument of the top-level + operator
227231 p% m = x + y
228232
229233 ! $omp atomic update
0 commit comments