37 lines
810 B
Fortran
37 lines
810 B
Fortran
|
! { dg-do compile }
|
||
|
! Test fix for PR37583, in which:
|
||
|
! (i) the reference to glocal prior to the ENTRY caused an internal
|
||
|
! error and
|
||
|
! (ii) the need for a RECURSIVE attribute was ignored.
|
||
|
!
|
||
|
! Contributed by Arjen Markus <arjen.markus@wldelft.nl>
|
||
|
!
|
||
|
module gsub
|
||
|
contains
|
||
|
recursive subroutine suba( g ) ! prefix with "RECURSIVE"
|
||
|
interface
|
||
|
real function g(x)
|
||
|
real x
|
||
|
end function
|
||
|
end interface
|
||
|
real :: x, y
|
||
|
call mysub( glocala )
|
||
|
return
|
||
|
entry glocala( x, y )
|
||
|
y = x
|
||
|
end subroutine
|
||
|
subroutine subb( g )
|
||
|
interface
|
||
|
real function g(x)
|
||
|
real x
|
||
|
end function
|
||
|
end interface
|
||
|
real :: x, y
|
||
|
call mysub( glocalb ) ! { dg-warning "Non-RECURSIVE" }
|
||
|
return
|
||
|
entry glocalb( x, y )
|
||
|
y = x
|
||
|
end subroutine
|
||
|
end module
|
||
|
! { dg-final { cleanup-modules "gsub" } }
|