@@ -17,21 +17,21 @@ program OmpAtomic
17
17
! $omp atomic
18
18
x = 1 + x
19
19
! $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
21
21
x = y + 1
22
22
! $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
24
24
x = 1 + y
25
25
26
26
! $omp atomic
27
27
x = x - 1
28
28
! $omp atomic
29
29
x = 1 - x
30
30
! $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
32
32
x = y - 1
33
33
! $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
35
35
x = 1 - y
36
36
37
37
! $omp atomic
@@ -50,64 +50,64 @@ program OmpAtomic
50
50
! $omp atomic
51
51
x = 1 / x
52
52
! $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
54
54
x = y/ 1
55
55
! $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
57
57
x = 1 / y
58
58
59
59
! $omp atomic
60
60
m = m .AND. n
61
61
! $omp atomic
62
62
m = n .AND. m
63
63
! $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
65
65
m = n .AND. l
66
66
67
67
! $omp atomic
68
68
m = m .OR. n
69
69
! $omp atomic
70
70
m = n .OR. m
71
71
! $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
73
73
m = n .OR. l
74
74
75
75
! $omp atomic
76
76
m = m .EQV. n
77
77
! $omp atomic
78
78
m = n .EQV. m
79
79
! $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
81
81
m = n .EQV. l
82
82
83
83
! $omp atomic
84
84
m = m .NEQV. n
85
85
! $omp atomic
86
86
m = n .NEQV. m
87
87
! $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
89
89
m = n .NEQV. l
90
90
91
91
! $omp atomic update
92
92
x = x + 1
93
93
! $omp atomic update
94
94
x = 1 + x
95
95
! $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
97
97
x = y + 1
98
98
! $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
100
100
x = 1 + y
101
101
102
102
! $omp atomic update
103
103
x = x - 1
104
104
! $omp atomic update
105
105
x = 1 - x
106
106
! $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
108
108
x = y - 1
109
109
! $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
111
111
x = 1 - y
112
112
113
113
! $omp atomic update
@@ -126,42 +126,42 @@ program OmpAtomic
126
126
! $omp atomic update
127
127
x = 1 / x
128
128
! $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
130
130
x = y/ 1
131
131
! $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
133
133
x = 1 / y
134
134
135
135
! $omp atomic update
136
136
m = m .AND. n
137
137
! $omp atomic update
138
138
m = n .AND. m
139
139
! $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
141
141
m = n .AND. l
142
142
143
143
! $omp atomic update
144
144
m = m .OR. n
145
145
! $omp atomic update
146
146
m = n .OR. m
147
147
! $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
149
149
m = n .OR. l
150
150
151
151
! $omp atomic update
152
152
m = m .EQV. n
153
153
! $omp atomic update
154
154
m = n .EQV. m
155
155
! $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
157
157
m = n .EQV. l
158
158
159
159
! $omp atomic update
160
160
m = m .NEQV. n
161
161
! $omp atomic update
162
162
m = n .NEQV. m
163
163
! $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
165
165
m = n .NEQV. l
166
166
167
167
end program OmpAtomic
@@ -184,27 +184,30 @@ subroutine more_invalid_atomic_update_stmts()
184
184
x = 1
185
185
186
186
! $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
188
188
a = a * b + a
189
189
190
190
! $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
192
193
a = b * (a + 9 )
193
194
194
195
! $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
196
197
a = a * (a + b)
197
198
198
199
! $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
200
201
a = (b + a) * a
201
202
202
203
! $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
204
206
a = a * b + c
205
207
206
208
! $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
208
211
a = a + b + c
209
212
210
213
! $omp atomic
@@ -219,11 +222,12 @@ subroutine more_invalid_atomic_update_stmts()
219
222
220
223
! $omp atomic update
221
224
! 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
223
227
x = x * y / z
224
228
225
229
! $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
227
231
p% m = x + y
228
232
229
233
! $omp atomic update
0 commit comments