diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/exit_4.f08')
-rw-r--r-- | gcc/testsuite/gfortran.dg/exit_4.f08 | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/exit_4.f08 b/gcc/testsuite/gfortran.dg/exit_4.f08 new file mode 100644 index 000000000..8033efc47 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/exit_4.f08 @@ -0,0 +1,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 |