1! { dg-do compile }
2! { dg-options "-std=f2008 -fcoarray=single" }
3
4! PR fortran/44602
5! Check for compile-time errors with non-loop EXITs.
6
7! Contributed by Daniel Kraft, d@domob.eu.
8
9PROGRAM main
10  IMPLICIT NONE
11  INTEGER :: bar(2)
12
13  ! Must not exit CRITICAL.
14  mycrit: CRITICAL
15    EXIT mycrit ! { dg-error "leaves CRITICAL" }
16  END CRITICAL mycrit
17
18  ! CYCLE is only allowed for loops!
19  myblock: BLOCK
20    CYCLE myblock ! { dg-error "is not applicable to non-loop construct 'myblock'" }
21  END BLOCK myblock
22
23  ! Invalid construct.
24  ! Thanks to Mikael Morin, mikael.morin@sfr.fr.
25  baz: WHERE ([ .true., .true. ])
26    bar = 0
27    EXIT baz ! { dg-error "is not applicable to construct 'baz'" }
28  END WHERE baz
29END PROGRAM main
30