summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/exit_4.f08
blob: 8033efc47c18bc5c283264cc740208867ab8cfc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
! { dg-do compile }
! { dg-options "-std=f2008 -fcoarray=single" }

! PR fortran/44602
! Check for compile-time errors with non-loop EXITs.

! Contributed by Daniel Kraft, d@domob.eu.

PROGRAM main
  IMPLICIT NONE
  INTEGER :: bar(2)

  ! Must not exit CRITICAL.
  mycrit: CRITICAL
    EXIT mycrit ! { dg-error "leaves CRITICAL" }
  END CRITICAL mycrit

  ! CYCLE is only allowed for loops!
  myblock: BLOCK
    CYCLE myblock ! { dg-error "is not applicable to non-loop construct 'myblock'" }
  END BLOCK myblock

  ! Invalid construct.
  ! Thanks to Mikael Morin, mikael.morin@sfr.fr.
  baz: WHERE ([ .true., .true. ])
    bar = 0
    EXIT baz ! { dg-error "is not applicable to construct 'baz'" }
  END WHERE baz
END PROGRAM main