1! Cross check that it is accepted without nowait
2subroutine bar()
3implicit none
4integer :: i, a(5)
5!$omp atomic write
6i = 5
7!$omp end atomic
8
9!$omp critical
10!$omp end critical
11
12!$omp distribute
13do i = 1, 5
14end do
15!$omp end distribute
16
17!$omp distribute parallel do
18do i = 1, 5
19end do
20!$omp end distribute parallel do
21
22!$omp distribute parallel do simd
23do i = 1, 5
24end do
25!$omp end distribute parallel do simd
26
27!$omp distribute simd
28do i = 1, 5
29end do
30!$omp end distribute simd
31
32!$omp masked
33!$omp end masked
34
35!$omp masked taskloop
36do i = 1, 5
37end do
38!$omp end masked taskloop
39
40!$omp masked taskloop simd
41do i = 1, 5
42end do
43!$omp end masked taskloop simd
44
45!$omp master
46!$omp end master
47
48!$omp master taskloop
49do i = 1, 5
50end do
51!$omp end master taskloop
52
53!$omp master taskloop simd
54do i = 1, 5
55end do
56!$omp end master taskloop simd
57
58!$omp ordered
59!$omp end ordered
60
61!$omp parallel
62!$omp end parallel
63
64!$omp parallel workshare
65a(:) = 5
66!$omp end parallel workshare
67
68!$omp parallel do
69do i = 1, 5
70end do
71!$omp end parallel do
72
73!$omp parallel do simd
74do i = 1, 5
75end do
76!$omp end parallel do simd
77
78!$omp parallel sections
79  !$omp section
80  block; end block
81!$omp end parallel sections
82
83!$omp parallel masked
84!$omp end parallel masked
85
86!$omp parallel masked taskloop
87do i = 1, 5
88end do
89!$omp end parallel masked taskloop
90
91!$omp parallel masked taskloop simd
92do i = 1, 5
93end do
94!$omp end parallel masked taskloop simd
95
96!$omp parallel master
97!$omp end parallel master
98
99!$omp parallel master taskloop
100do i = 1, 5
101end do
102!$omp end parallel master taskloop
103
104!$omp parallel master taskloop simd
105do i = 1, 5
106end do
107!$omp end parallel master taskloop simd
108
109!$omp simd
110do i = 1, 5
111end do
112!$omp end simd
113
114!$omp task
115!$omp end task
116
117!$omp taskgroup
118!$omp end taskgroup
119
120!$omp taskloop
121do i = 1, 5
122end do
123!$omp end taskloop
124
125!$omp taskloop simd
126do i = 1, 5
127end do
128!$omp end taskloop simd
129
130!$omp teams
131!$omp end teams
132
133!$omp teams distribute
134do i = 1, 5
135end do
136!$omp end teams distribute
137
138!$omp teams distribute parallel do
139do i = 1, 5
140end do
141!$omp end teams distribute parallel do
142
143!$omp teams distribute parallel do simd
144do i = 1, 5
145end do
146!$omp end teams distribute parallel do simd
147
148!$omp teams distribute simd
149do i = 1, 5
150end do
151!$omp end teams distribute simd
152
153!$omp target data map(tofrom:i)
154!$omp end target data
155
156end
157
158! invalid nowait
159
160subroutine foo
161implicit none
162integer :: i, a(5)
163!$omp atomic write
164i = 5
165!$omp end atomic nowait  ! { dg-error "Unexpected junk" }
166
167!$omp critical
168!$omp end critical nowait  ! { dg-error "Unexpected junk" }
169
170!$omp distribute
171do i = 1, 5
172end do
173!$omp end distribute nowait  ! { dg-error "Unexpected junk" }
174
175!$omp distribute parallel do
176do i = 1, 5
177end do
178!$omp end distribute parallel do nowait  ! { dg-error "Unexpected junk" }
179
180!$omp distribute parallel do simd
181do i = 1, 5
182end do
183!$omp end distribute parallel do simd nowait  ! { dg-error "Unexpected junk" }
184
185!$omp parallel sections
186  !$omp section
187  block; end block
188!$omp end parallel sections nowait  ! { dg-error "Unexpected junk" }
189
190!$omp distribute simd
191do i = 1, 5
192end do
193!$omp end distribute simd nowait  ! { dg-error "Unexpected junk" }
194
195!$omp masked
196!$omp end masked nowait  ! { dg-error "Unexpected junk" }
197
198!$omp masked taskloop
199do i = 1, 5
200end do
201!$omp end masked taskloop nowait  ! { dg-error "Unexpected junk" }
202
203!$omp masked taskloop simd
204do i = 1, 5
205end do
206!$omp end masked taskloop simd nowait  ! { dg-error "Unexpected junk" }
207
208!$omp master
209!$omp end master nowait  ! { dg-error "Unexpected junk" }
210
211!$omp master taskloop
212do i = 1, 5
213end do
214!$omp end master taskloop nowait  ! { dg-error "Unexpected junk" }
215
216!$omp master taskloop simd
217do i = 1, 5
218end do
219!$omp end master taskloop simd nowait  ! { dg-error "Unexpected junk" }
220
221!$omp ordered
222!$omp end ordered nowait  ! { dg-error "Unexpected junk" }
223
224!$omp parallel
225!$omp end parallel nowait  ! { dg-error "Unexpected junk" }
226
227!$omp parallel workshare
228a(:) = 5
229!$omp end parallel workshare nowait  ! { dg-error "Unexpected junk" }
230
231!$omp parallel do
232do i = 1, 5
233end do
234!$omp end parallel do nowait  ! { dg-error "Unexpected junk" }
235
236!$omp parallel do simd
237do i = 1, 5
238end do
239!$omp end parallel do simd nowait  ! { dg-error "Unexpected junk" }
240
241!$omp parallel masked
242!$omp end parallel masked nowait  ! { dg-error "Unexpected junk" }
243
244!$omp parallel masked taskloop
245do i = 1, 5
246end do
247!$omp end parallel masked taskloop nowait  ! { dg-error "Unexpected junk" }
248
249!$omp parallel masked taskloop simd
250do i = 1, 5
251end do
252!$omp end parallel masked taskloop simd nowait  ! { dg-error "Unexpected junk" }
253
254!$omp parallel master
255!$omp end parallel master nowait  ! { dg-error "Unexpected junk" }
256
257!$omp parallel master taskloop
258do i = 1, 5
259end do
260!$omp end parallel master taskloop nowait  ! { dg-error "Unexpected junk" }
261
262!$omp parallel master taskloop simd
263do i = 1, 5
264end do
265!$omp end parallel master taskloop simd nowait  ! { dg-error "Unexpected junk" }
266
267!$omp simd
268do i = 1, 5
269end do
270!$omp end simd nowait  ! { dg-error "Unexpected junk" }
271
272!$omp task
273!$omp end task nowait  ! { dg-error "Unexpected junk" }
274
275!$omp taskgroup
276!$omp end taskgroup nowait  ! { dg-error "Unexpected junk" }
277
278!$omp taskloop
279do i = 1, 5
280end do
281!$omp end taskloop nowait  ! { dg-error "Unexpected junk" }
282
283!$omp taskloop simd
284do i = 1, 5
285end do
286!$omp end taskloop simd nowait  ! { dg-error "Unexpected junk" }
287
288!$omp teams
289!$omp end teams nowait  ! { dg-error "Unexpected junk" }
290
291!$omp teams distribute
292do i = 1, 5
293end do
294!$omp end teams distribute nowait  ! { dg-error "Unexpected junk" }
295
296!$omp teams distribute parallel do
297do i = 1, 5
298end do
299!$omp end teams distribute parallel do nowait  ! { dg-error "Unexpected junk" }
300
301!$omp teams distribute parallel do simd
302do i = 1, 5
303end do
304!$omp end teams distribute parallel do simd nowait  ! { dg-error "Unexpected junk" }
305
306!$omp teams distribute simd
307do i = 1, 5
308end do
309!$omp end teams distribute simd nowait  ! { dg-error "Unexpected junk" }
310
311!$omp target data map(tofrom:i)
312!$omp end target data nowait  ! { dg-error "Unexpected junk" }
313
314end  ! { dg-error "Unexpected END statement" }
315! { dg-prune-output "Unexpected end of file" }
316