1! { dg-do run }
2! { dg-options "-fcheck=recursion" }
3! { dg-shouldfail "Recursion check" }
4!
5! { dg-output "Fortran runtime error: Recursive call to nonrecursive procedure 'master.0.f'" }
6!
7! PR fortran/39577
8!
9! invalid - recursion
10module m
11  implicit none
12contains
13  subroutine f(rec)
14    logical :: rec
15    if(rec) then
16      call h()
17    end if
18    return
19  entry g()
20  end subroutine f
21  subroutine h()
22    call f(.false.)
23  end subroutine h
24end module m
25
26program test
27 use m
28 implicit none
29 call f(.false.)
30 call f(.true.)
31end program test
32