49 lines
940 B
Fortran
49 lines
940 B
Fortran
|
! RUN: %python %S/test_modfile.py %s %flang_fc1
|
||
|
! Ensure that symbols and types needed to declare procedures and procedure pointers
|
||
|
! are properly imported into interfaces.
|
||
|
module m
|
||
|
type :: t
|
||
|
end type
|
||
|
abstract interface
|
||
|
subroutine iface
|
||
|
end
|
||
|
end interface
|
||
|
procedure(iface) :: ext
|
||
|
interface
|
||
|
subroutine subr(p1,p2)
|
||
|
import ext, t
|
||
|
procedure(ext) :: p1
|
||
|
procedure(type(t)), pointer :: p2
|
||
|
end subroutine
|
||
|
function fun() result(res)
|
||
|
import subr
|
||
|
procedure(subr), pointer :: res
|
||
|
end function
|
||
|
end interface
|
||
|
end module
|
||
|
|
||
|
!Expect: m.mod
|
||
|
!module m
|
||
|
!type::t
|
||
|
!end type
|
||
|
!abstract interface
|
||
|
!subroutine iface()
|
||
|
!end
|
||
|
!end interface
|
||
|
!procedure(iface)::ext
|
||
|
!interface
|
||
|
!subroutine subr(p1,p2)
|
||
|
!import::ext
|
||
|
!import::t
|
||
|
!procedure(ext)::p1
|
||
|
!procedure(type(t)),pointer::p2
|
||
|
!end
|
||
|
!end interface
|
||
|
!interface
|
||
|
!function fun() result(res)
|
||
|
!import::subr
|
||
|
!procedure(subr),pointer::res
|
||
|
!end
|
||
|
!end interface
|
||
|
!end
|