diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/recursive_check_13.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/recursive_check_13.f90 | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/recursive_check_13.f90 b/gcc/testsuite/gfortran.dg/recursive_check_13.f90 new file mode 100644 index 000000000..ed222a322 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/recursive_check_13.f90 @@ -0,0 +1,32 @@ +! { dg-do run } +! { dg-options "-fcheck=recursion" } +! { dg-shouldfail "Recursion check" } +! +! { dg-output "Fortran runtime error: Recursive call to nonrecursive procedure 'master.0.f'" } +! +! PR fortran/39577 +! +! invalid - recursion +module m + implicit none +contains + subroutine f(rec) + logical :: rec + if(rec) then + call h() + end if + return + entry g() + end subroutine f + subroutine h() + call f(.false.) + end subroutine h +end module m + +program test + use m + implicit none + call f(.false.) + call f(.true.) +end program test +! { dg-final { cleanup-modules "m" } } |