blob: 6fe244d91e8b36281686f2de5d58b06a54cb32cf [file] [log] [blame]
! { dg-do link }
!
! PR fortran/52729
!
! Based on a contribution of Andrew Benson
!
module testMod
type testType
end type testType
contains
subroutine testSub()
implicit none
procedure(double precision ), pointer :: r
class (testType ), pointer :: testObject
double precision :: testVal
! Failed as testFunc was BT_UNKNOWN
select type (testObject)
class is (testType)
testVal=testFunc()
r => testFunc
end select
return
end subroutine testSub
double precision function testFunc()
implicit none
return
end function testFunc
end module testMod
module testMod2
implicit none
contains
subroutine testSub()
procedure(double precision ), pointer :: r
double precision :: testVal
! Failed as testFunc was BT_UNKNOWN
block
r => testFunc
testVal=testFunc()
end block
end subroutine testSub
double precision function testFunc()
end function testFunc
end module testMod2
module m3
implicit none
contains
subroutine my_test()
procedure(sub), pointer :: ptr
! Before the fix, one had the link error
! "undefined reference to `sub.1909'"
block
ptr => sub
call sub()
end block
end subroutine my_test
subroutine sub(a)
integer, optional :: a
end subroutine sub
end module m3
end