! RUN: %python %S/test_modfile.py %s %flang_fc1
module m
type t1
procedure(p1), pointer, nopass :: p
end type
type t2
procedure(p2), pointer, nopass :: p
end type
type t3
procedure(p4), pointer, nopass :: p
end type
type t4
procedure(p6), pointer, nopass :: p
end type
type t5
procedure(p7), pointer, nopass :: p
end type
interface
subroutine p1
end
subroutine p2
end
subroutine p3
end
subroutine p4
end
subroutine p5(c)
import
type(t3), intent(in) :: c
end
subroutine p6(d)
import
type(t5), intent(in) :: d
end
subroutine p7
end
subroutine p8
end
function f(a,b,dp)
import
type(t1), intent(in) :: a
type, extends(t2) :: localt1
procedure(p3), pointer, nopass :: p
end type
type, extends(localt1) :: localt2
contains
procedure, nopass :: p8
end type
type(localt2), intent(in) :: b
procedure(p5) dp
type(t4), pointer :: f
end
end interface
end
!Expect: m.mod
!module m
!type::t1
!procedure(p1),nopass,pointer::p
!end type
!type::t2
!procedure(p2),nopass,pointer::p
!end type
!type::t3
!procedure(p4),nopass,pointer::p
!end type
!type::t4
!procedure(p6),nopass,pointer::p
!end type
!type::t5
!procedure(p7),nopass,pointer::p
!end type
!interface
!subroutine p1()
!end
!end interface
!interface
!subroutine p2()
!end
!end interface
!interface
!subroutine p3()
!end
!end interface
!interface
!subroutine p4()
!end
!end interface
!interface
!subroutine p5(c)
!import::t3
!type(t3),intent(in)::c
!end
!end interface
!interface
!subroutine p6(d)
!import::t5
!type(t5),intent(in)::d
!end
!end interface
!interface
!subroutine p7()
!end
!end interface
!interface
!subroutine p8()
!end
!end interface
!interface
!function f(a,b,dp)
!import::p3
!import::p5
!import::p8
!import::t1
!import::t2
!import::t4
!type(t1),intent(in)::a
!type,extends(t2)::localt1
!procedure(p3),nopass,pointer::p
!end type
!type,extends(localt1)::localt2
!contains
!procedure,nopass::p8
!end type
!type(localt2),intent(in)::b
!procedure(p5)::dp
!type(t4),pointer::f
!end
!end interface
!end