1! RUN: %python %S/test_modfile.py %s %flang_fc1 2module m 3 type t1 4 procedure(p1), pointer, nopass :: p 5 end type 6 type t2 7 procedure(p2), pointer, nopass :: p 8 end type 9 type t3 10 procedure(p4), pointer, nopass :: p 11 end type 12 type t4 13 procedure(p6), pointer, nopass :: p 14 end type 15 type t5 16 procedure(p7), pointer, nopass :: p 17 end type 18 interface 19 subroutine p1 20 end 21 subroutine p2 22 end 23 subroutine p3 24 end 25 subroutine p4 26 end 27 subroutine p5(c) 28 import 29 type(t3), intent(in) :: c 30 end 31 subroutine p6(d) 32 import 33 type(t5), intent(in) :: d 34 end 35 subroutine p7 36 end 37 subroutine p8 38 end 39 function f(a,b,dp) 40 import 41 type(t1), intent(in) :: a 42 type, extends(t2) :: localt1 43 procedure(p3), pointer, nopass :: p 44 end type 45 type, extends(localt1) :: localt2 46 contains 47 procedure, nopass :: p8 48 end type 49 type(localt2), intent(in) :: b 50 procedure(p5) dp 51 type(t4), pointer :: f 52 end 53 end interface 54end 55 56!Expect: m.mod 57!module m 58!type::t1 59!procedure(p1),nopass,pointer::p 60!end type 61!type::t2 62!procedure(p2),nopass,pointer::p 63!end type 64!type::t3 65!procedure(p4),nopass,pointer::p 66!end type 67!type::t4 68!procedure(p6),nopass,pointer::p 69!end type 70!type::t5 71!procedure(p7),nopass,pointer::p 72!end type 73!interface 74!subroutine p1() 75!end 76!end interface 77!interface 78!subroutine p2() 79!end 80!end interface 81!interface 82!subroutine p3() 83!end 84!end interface 85!interface 86!subroutine p4() 87!end 88!end interface 89!interface 90!subroutine p5(c) 91!import::t3 92!type(t3),intent(in)::c 93!end 94!end interface 95!interface 96!subroutine p6(d) 97!import::t5 98!type(t5),intent(in)::d 99!end 100!end interface 101!interface 102!subroutine p7() 103!end 104!end interface 105!interface 106!subroutine p8() 107!end 108!end interface 109!interface 110!function f(a,b,dp) 111!import::p3 112!import::p5 113!import::p8 114!import::t1 115!import::t2 116!import::t4 117!type(t1),intent(in)::a 118!type,extends(t2)::localt1 119!procedure(p3),nopass,pointer::p 120!end type 121!type,extends(localt1)::localt2 122!contains 123!procedure,nopass::p8 124!end type 125!type(localt2),intent(in)::b 126!procedure(p5)::dp 127!type(t4),pointer::f 128!end 129!end interface 130!end 131