1! { dg-additional-options "-cpp" }
2
3subroutine f1
4  !$omp cancel parallel			! { dg-error "orphaned" }
5  !$omp cancel do			! { dg-error "orphaned" }
6  !$omp cancel sections			! { dg-error "orphaned" }
7  !$omp cancel taskgroup			! { dg-error "orphaned" }
8  !$omp cancellation point parallel	! { dg-error "orphaned" }
9  !$omp cancellation point do		! { dg-error "orphaned" }
10  !$omp cancellation point sections	! { dg-error "orphaned" }
11  !$omp cancellation point taskgroup	! { dg-error "orphaned" }
12end
13
14subroutine f2
15  integer :: i, j
16  j = 0
17  !$omp parallel
18    !$omp cancel parallel
19    !$omp cancel do			! { dg-error "not closely nested inside" }
20    !$omp cancel sections			! { dg-error "not closely nested inside" }
21    !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
22    !$omp cancellation point parallel
23    !$omp cancellation point do		! { dg-error "not closely nested inside" }
24    !$omp cancellation point sections	! { dg-error "not closely nested inside" }
25    !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
26
27    !$omp master
28      !$omp cancel parallel		! { dg-error "not closely nested inside" }
29      !$omp cancel do			! { dg-error "not closely nested inside" }
30      !$omp cancel sections		! { dg-error "not closely nested inside" }
31      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
32      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
33      !$omp cancellation point do	! { dg-error "not closely nested inside" }
34      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
35      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
36    !$omp end master
37
38    !$omp masked
39      !$omp cancel parallel		! { dg-error "not closely nested inside" }
40      !$omp cancel do			! { dg-error "not closely nested inside" }
41      !$omp cancel sections		! { dg-error "not closely nested inside" }
42      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
43      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
44      !$omp cancellation point do	! { dg-error "not closely nested inside" }
45      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
46      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
47    !$omp end masked
48
49    !$omp scope
50      !$omp cancel parallel		! { dg-error "not closely nested inside" }
51      !$omp cancel do			! { dg-error "not closely nested inside" }
52      !$omp cancel sections		! { dg-error "not closely nested inside" }
53      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
54      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
55      !$omp cancellation point do	! { dg-error "not closely nested inside" }
56      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
57      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
58    !$omp end scope
59
60    !$omp single
61      !$omp cancel parallel		! { dg-error "not closely nested inside" }
62      !$omp cancel do			! { dg-error "not closely nested inside" }
63      !$omp cancel sections		! { dg-error "not closely nested inside" }
64      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
65      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
66      !$omp cancellation point do	! { dg-error "not closely nested inside" }
67      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
68      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
69    !$omp end single
70
71    !$omp critical
72      !$omp cancel parallel		! { dg-error "not closely nested inside" }
73      !$omp cancel do			! { dg-error "not closely nested inside" }
74      !$omp cancel sections		! { dg-error "not closely nested inside" }
75      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
76      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
77      !$omp cancellation point do	! { dg-error "not closely nested inside" }
78      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
79      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
80    !$omp end critical
81
82    !$omp taskgroup
83      !$omp cancel parallel		! { dg-error "not closely nested inside" }
84      !$omp cancel do			! { dg-error "not closely nested inside" }
85      !$omp cancel sections		! { dg-error "not closely nested inside" }
86      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
87      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
88      !$omp cancellation point do	! { dg-error "not closely nested inside" }
89      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
90      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
91    !$omp end taskgroup
92
93    !$omp task
94      !$omp cancel parallel		! { dg-error "not closely nested inside" }
95      !$omp cancel do			! { dg-error "not closely nested inside" }
96      !$omp cancel sections		! { dg-error "not closely nested inside" }
97      !$omp cancel taskgroup		! { dg-error "construct not closely nested inside of .taskgroup. region" }
98      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
99      !$omp cancellation point do	! { dg-error "not closely nested inside" }
100      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
101      !$omp cancellation point taskgroup	! { dg-error "construct not closely nested inside of .taskgroup. region" }
102    !$omp end task
103
104    !$omp taskgroup
105    !$omp task
106      !$omp cancel parallel		! { dg-error "not closely nested inside" }
107      !$omp cancel do			! { dg-error "not closely nested inside" }
108      !$omp cancel sections		! { dg-error "not closely nested inside" }
109      !$omp cancel taskgroup
110      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
111      !$omp cancellation point do	! { dg-error "not closely nested inside" }
112      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
113      !$omp cancellation point taskgroup
114    !$omp end task
115    !$omp end taskgroup
116
117    !$omp taskloop
118    do i = 0, 9
119        !$omp cancel parallel		! { dg-error "not closely nested inside" }
120        !$omp cancel do			! { dg-error "not closely nested inside" }
121        !$omp cancel sections		! { dg-error "not closely nested inside" }
122        !$omp cancel taskgroup
123        !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
124        !$omp cancellation point do	! { dg-error "not closely nested inside" }
125        !$omp cancellation point sections	! { dg-error "not closely nested inside" }
126        !$omp cancellation point taskgroup
127        !$omp task
128          !$omp cancellation point taskgroup
129          !$omp cancel taskgroup
130        !$omp end task
131    end do
132    !$omp taskloop nogroup
133    do i = 0, 9
134        !$omp cancel parallel		! { dg-error "not closely nested inside" }
135        !$omp cancel do			! { dg-error "not closely nested inside" }
136        !$omp cancel sections		! { dg-error "not closely nested inside" }
137        !$omp cancel taskgroup		! { dg-error "construct not closely nested inside of .taskgroup. region" }
138        !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
139        !$omp cancellation point do	! { dg-error "not closely nested inside" }
140        !$omp cancellation point sections	! { dg-error "not closely nested inside" }
141        !$omp cancellation point taskgroup! { dg-error "construct not closely nested inside of .taskgroup. region" }
142        !$omp task
143          !$omp cancellation point taskgroup! { dg-error "construct not closely nested inside of .taskgroup. region" }
144          !$omp cancel taskgroup		! { dg-error "construct not closely nested inside of .taskgroup. region" }
145        !$omp end task
146    end do
147    !$omp taskgroup
148      !$omp task
149        !$omp task
150          !$omp cancellation point taskgroup
151          !$omp cancel taskgroup
152        !$omp end task
153      !$omp end task
154      !$omp taskloop nogroup
155      do i = 0, 9
156          !$omp task
157            !$omp cancellation point taskgroup
158            !$omp cancel taskgroup
159          !$omp end task
160          !$omp cancellation point taskgroup
161          !$omp cancel taskgroup
162      end do
163    !$omp end taskgroup
164
165    !$omp taskgroup
166      !$omp parallel
167        !$omp task
168          !$omp cancel taskgroup		! { dg-error "construct not closely nested inside of .taskgroup. region" }
169          !$omp cancellation point taskgroup ! { dg-error "construct not closely nested inside of .taskgroup. region" }
170        !$omp end task
171        !$omp taskloop
172        do i = 0, 9
173            !$omp cancel taskgroup
174            !$omp cancellation point taskgroup
175        end do
176        !$omp taskloop nogroup
177        do i = 0, 9
178            !$omp cancel taskgroup	     ! { dg-error "construct not closely nested inside of .taskgroup. region" }
179            !$omp cancellation point taskgroup ! { dg-error "construct not closely nested inside of .taskgroup. region" }
180        end do
181      !$omp end parallel
182      !$omp target
183        !$omp task
184          !$omp cancel taskgroup		! { dg-error "construct not closely nested inside of .taskgroup. region" }
185          !$omp cancellation point taskgroup ! { dg-error "construct not closely nested inside of .taskgroup. region" }
186        !$omp end task
187      !$omp end target
188      !$omp target
189      !$omp teams
190      !$omp distribute
191      do i = 0, 9
192          !$omp task
193            !$omp cancellation point taskgroup ! { dg-error "construct not closely nested inside of .taskgroup. region" }
194          !$omp end task
195      end do
196      !$omp end distribute
197      !$omp end teams
198      !$omp end target
199      !$omp target data map(i)
200        !$omp task
201          !$omp cancel taskgroup
202          !$omp cancellation point taskgroup
203        !$omp end task
204      !$omp end target data
205    !$omp end taskgroup
206
207    !$omp taskloop
208    do i = 0, 9
209        !$omp parallel
210          !$omp task
211            !$omp cancel taskgroup	     ! { dg-error "construct not closely nested inside of .taskgroup. region" }
212            !$omp cancellation point taskgroup ! { dg-error "construct not closely nested inside of .taskgroup. region" }
213          !$omp end task
214        !$omp end parallel
215        !$omp target
216          !$omp task
217            !$omp cancel taskgroup	     ! { dg-error "construct not closely nested inside of .taskgroup. region" }
218            !$omp cancellation point taskgroup ! { dg-error "construct not closely nested inside of .taskgroup. region" }
219          !$omp end task
220        !$omp end target
221        !$omp target
222        !$omp teams
223        !$omp distribute
224        do j = 0, 9
225            !$omp task
226              !$omp cancel taskgroup	! { dg-error "construct not closely nested inside of .taskgroup. region" }
227              !$omp cancellation point taskgroup ! { dg-error "construct not closely nested inside of .taskgroup. region" }
228            !$omp end task
229        end do
230        !$omp end distribute
231        !$omp end teams
232        !$omp end target
233        !$omp target data map(i)
234          !$omp task
235            !$omp cancel taskgroup
236            !$omp cancellation point taskgroup
237          !$omp end task
238        !$omp end target data
239    end do
240
241    !$omp do
242    do i = 0, 9
243        !$omp cancel parallel		! { dg-error "not closely nested inside" }
244        !$omp cancel do
245        !$omp cancel sections		! { dg-error "not closely nested inside" }
246        !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
247        !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
248        !$omp cancellation point do
249        !$omp cancellation point sections	! { dg-error "not closely nested inside" }
250        !$omp cancellation point taskgroup! { dg-error "not closely nested inside" }
251    end do
252
253    !$omp do ordered
254    do i = 0, 9
255      !$omp ordered
256        !$omp cancel parallel		! { dg-error "not closely nested inside" }
257        !$omp cancel do			! { dg-error "not closely nested inside" }
258        !$omp cancel sections		! { dg-error "not closely nested inside" }
259        !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
260        !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
261        !$omp cancellation point do	! { dg-error "not closely nested inside" }
262        !$omp cancellation point sections	! { dg-error "not closely nested inside" }
263        !$omp cancellation point taskgroup! { dg-error "not closely nested inside" }
264      !$omp end ordered
265    end do
266    !$omp end do
267    !$omp sections
268      !$omp section
269      block
270        !$omp cancel parallel		! { dg-error "not closely nested inside" }
271        !$omp cancel do			! { dg-error "not closely nested inside" }
272        !$omp cancel sections
273        !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
274        !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
275        !$omp cancellation point do	! { dg-error "not closely nested inside" }
276        !$omp cancellation point sections
277        !$omp cancellation point taskgroup! { dg-error "not closely nested inside" }
278      end block
279      !$omp section
280      block
281        !$omp cancel parallel		! { dg-error "not closely nested inside" }
282        !$omp cancel do			! { dg-error "not closely nested inside" }
283        !$omp cancel sections
284        !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
285        !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
286        !$omp cancellation point do	! { dg-error "not closely nested inside" }
287        !$omp cancellation point sections
288        !$omp cancellation point taskgroup! { dg-error "not closely nested inside" }
289      end block
290    !$omp target data map(j)
291      !$omp cancel parallel		! { dg-error "not closely nested inside" }
292      !$omp cancel do			! { dg-error "not closely nested inside" }
293      !$omp cancel sections		! { dg-error "not closely nested inside" }
294      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
295      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
296      !$omp cancellation point do	! { dg-error "not closely nested inside" }
297      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
298      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
299    !$omp end target data
300    !$omp target
301      !$omp cancel parallel		! { dg-error "not closely nested inside" }
302      !$omp cancel do			! { dg-error "not closely nested inside" }
303      !$omp cancel sections		! { dg-error "not closely nested inside" }
304      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
305      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
306      !$omp cancellation point do	! { dg-error "not closely nested inside" }
307      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
308      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
309    !$omp end target
310  !$omp end sections
311  !$omp end parallel
312  !$omp target data map(j)
313    !$omp cancel parallel			! { dg-error "not closely nested inside" }
314    !$omp cancel do			! { dg-error "not closely nested inside" }
315    !$omp cancel sections			! { dg-error "not closely nested inside" }
316    !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
317    !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
318    !$omp cancellation point do		! { dg-error "not closely nested inside" }
319    !$omp cancellation point sections	! { dg-error "not closely nested inside" }
320    !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
321  !$omp end target data
322  !$omp target
323    !$omp cancel parallel			! { dg-error "not closely nested inside" }
324    !$omp cancel do			! { dg-error "not closely nested inside" }
325    !$omp cancel sections			! { dg-error "not closely nested inside" }
326    !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
327    !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
328    !$omp cancellation point do		! { dg-error "not closely nested inside" }
329    !$omp cancellation point sections	! { dg-error "not closely nested inside" }
330    !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
331  !$omp end target
332  !$omp target teams
333    !$omp cancel parallel			! { dg-error "only .distribute., .parallel. or .loop. regions are allowed to be strictly nested" }
334    !$omp cancel do			! { dg-error "only .distribute., .parallel. or .loop. regions are allowed to be strictly nested" }
335    !$omp cancel sections			! { dg-error "only .distribute., .parallel. or .loop. regions are allowed to be strictly nested" }
336    !$omp cancel taskgroup		! { dg-error "only .distribute., .parallel. or .loop. regions are allowed to be strictly nested" }
337    !$omp cancellation point parallel	! { dg-error "only .distribute., .parallel. or .loop. regions are allowed to be strictly nested" }
338    !$omp cancellation point do		! { dg-error "only .distribute., .parallel. or .loop. regions are allowed to be strictly nested" }
339    !$omp cancellation point sections	! { dg-error "only .distribute., .parallel. or .loop. regions are allowed to be strictly nested" }
340    !$omp cancellation point taskgroup	! { dg-error "only .distribute., .parallel. or .loop. regions are allowed to be strictly nested" }
341  !$omp end target teams
342  !$omp target teams distribute
343  do i = 0, 9
344      !$omp cancel parallel		! { dg-error "not closely nested inside" }
345      !$omp cancel do			! { dg-error "not closely nested inside" }
346      !$omp cancel sections		! { dg-error "not closely nested inside" }
347      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
348      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
349      !$omp cancellation point do	! { dg-error "not closely nested inside" }
350      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
351      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
352  end do
353  !$omp end target teams distribute
354  !$omp do
355  do i = 0, 9
356      !$omp cancel parallel		! { dg-error "not closely nested inside" }
357      !$omp cancel do
358      !$omp cancel sections		! { dg-error "not closely nested inside" }
359      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
360      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
361      !$omp cancellation point do
362      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
363      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
364  end do
365  !$omp do
366  do i = 0, 9
367    !$omp target data map(j)
368      !$omp cancel parallel		! { dg-error "not closely nested inside" }
369      !$omp cancel do			! { dg-error "not closely nested inside" }
370      !$omp cancel sections		! { dg-error "not closely nested inside" }
371      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
372      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
373      !$omp cancellation point do	! { dg-error "not closely nested inside" }
374      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
375      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
376    !$omp end target data
377  end do
378  !$omp do
379  do i = 0, 9
380    !$omp target
381      !$omp cancel parallel		! { dg-error "not closely nested inside" }
382      !$omp cancel do			! { dg-error "not closely nested inside" }
383      !$omp cancel sections		! { dg-error "not closely nested inside" }
384      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
385      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
386      !$omp cancellation point do	! { dg-error "not closely nested inside" }
387      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
388      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
389    !$omp end target
390  end do
391  !$omp do ordered
392  do i = 0, 9
393    !$omp ordered
394      !$omp target data map(j)
395        !$omp cancel parallel		! { dg-error "not closely nested inside" }
396        !$omp cancel do			! { dg-error "not closely nested inside" }
397        !$omp cancel sections		! { dg-error "not closely nested inside" }
398        !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
399        !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
400        !$omp cancellation point do	! { dg-error "not closely nested inside" }
401        !$omp cancellation point sections	! { dg-error "not closely nested inside" }
402        !$omp cancellation point taskgroup! { dg-error "not closely nested inside" }
403      !$omp end target data
404    !$omp end ordered
405  end do
406  do i = 0, 9
407    !$omp ordered
408      !$omp target
409        !$omp cancel parallel		! { dg-error "not closely nested inside" }
410        !$omp cancel do			! { dg-error "not closely nested inside" }
411        !$omp cancel sections		! { dg-error "not closely nested inside" }
412        !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
413        !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
414        !$omp cancellation point do	! { dg-error "not closely nested inside" }
415        !$omp cancellation point sections	! { dg-error "not closely nested inside" }
416        !$omp cancellation point taskgroup! { dg-error "not closely nested inside" }
417      !$omp end target
418    !$omp end ordered
419  end do
420  !$omp sections
421    !$omp section
422    block
423      !$omp cancel parallel		! { dg-error "not closely nested inside" }
424      !$omp cancel do			! { dg-error "not closely nested inside" }
425      !$omp cancel sections
426      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
427      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
428      !$omp cancellation point do	! { dg-error "not closely nested inside" }
429      !$omp cancellation point sections
430      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
431    end block
432    !$omp section
433    block
434      !$omp cancel parallel		! { dg-error "not closely nested inside" }
435      !$omp cancel do			! { dg-error "not closely nested inside" }
436      !$omp cancel sections
437      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
438      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
439      !$omp cancellation point do	! { dg-error "not closely nested inside" }
440      !$omp cancellation point sections
441      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
442    end block
443  !$omp end sections
444  !$omp sections
445    !$omp target data map(j)
446      !$omp cancel parallel		! { dg-error "not closely nested inside" }
447      !$omp cancel do			! { dg-error "not closely nested inside" }
448      !$omp cancel sections		! { dg-error "not closely nested inside" }
449      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
450      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
451      !$omp cancellation point do	! { dg-error "not closely nested inside" }
452      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
453      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
454    !$omp end target data
455    !$omp section
456    !$omp target data map(j)
457      !$omp cancel parallel		! { dg-error "not closely nested inside" }
458      !$omp cancel do			! { dg-error "not closely nested inside" }
459      !$omp cancel sections		! { dg-error "not closely nested inside" }
460      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
461      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
462      !$omp cancellation point do	! { dg-error "not closely nested inside" }
463      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
464      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
465    !$omp end target data
466  !$omp end sections
467  !$omp sections
468    !$omp target
469      !$omp cancel parallel		! { dg-error "not closely nested inside" }
470      !$omp cancel do			! { dg-error "not closely nested inside" }
471      !$omp cancel sections		! { dg-error "not closely nested inside" }
472      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
473      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
474      !$omp cancellation point do	! { dg-error "not closely nested inside" }
475      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
476      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
477    !$omp end target
478    !$omp section
479    !$omp target
480      !$omp cancel parallel		! { dg-error "not closely nested inside" }
481      !$omp cancel do			! { dg-error "not closely nested inside" }
482      !$omp cancel sections		! { dg-error "not closely nested inside" }
483      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
484      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
485      !$omp cancellation point do	! { dg-error "not closely nested inside" }
486      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
487      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
488    !$omp end target
489  !$omp end sections
490  !$omp task
491    !$omp cancel parallel			! { dg-error "not closely nested inside" }
492    !$omp cancel do			! { dg-error "not closely nested inside" }
493    !$omp cancel sections			! { dg-error "not closely nested inside" }
494    !$omp cancel taskgroup
495    !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
496    !$omp cancellation point do		! { dg-error "not closely nested inside" }
497    !$omp cancellation point sections	! { dg-error "not closely nested inside" }
498    !$omp cancellation point taskgroup
499    !$omp taskgroup
500      !$omp cancel parallel		! { dg-error "not closely nested inside" }
501      !$omp cancel do			! { dg-error "not closely nested inside" }
502      !$omp cancel sections		! { dg-error "not closely nested inside" }
503      !$omp cancel taskgroup		! { dg-error "not closely nested inside" }
504      !$omp cancellation point parallel	! { dg-error "not closely nested inside" }
505      !$omp cancellation point do	! { dg-error "not closely nested inside" }
506      !$omp cancellation point sections	! { dg-error "not closely nested inside" }
507      !$omp cancellation point taskgroup	! { dg-error "not closely nested inside" }
508    !$omp end taskgroup
509  !$omp end task
510end
511
512subroutine f3
513  integer i
514  !$omp do
515  do i = 0, 9
516      !$omp cancel do		! { dg-warning "nowait" }
517  end do
518  !$omp end do nowait
519  !$omp sections
520    !$omp section
521    block
522      !$omp cancel sections	! { dg-warning "nowait" }
523    end block
524    !$omp section
525    block
526      !$omp cancel sections	! { dg-warning "nowait" }
527    end block
528  !$omp end sections nowait
529  !$omp do ordered
530  do i = 0, 9
531      !$omp cancel do		! { dg-warning "ordered" }
532      !$omp ordered
533      !$omp end ordered
534  end do
535end
536
537
538subroutine f4
539!  if (.false.) then
540!$omp cancellation point do ! { dg-error "orphaned 'cancellation point' construct" }
541!  end if
542end
543