1! RUN: %S/test_modfile.sh %s %t %f18
2module m
3  type t1
4  contains
5    procedure, nopass :: s2
6    procedure, nopass :: s3
7    procedure :: r
8    generic :: foo => s2
9    generic :: read(formatted)=> r
10  end type
11  type, extends(t1) :: t2
12  contains
13    procedure, nopass :: s4
14    generic :: foo => s3
15    generic :: foo => s4
16  end type
17contains
18  subroutine s2(i)
19  end
20  subroutine s3(r)
21  end
22  subroutine s4(z)
23    complex :: z
24  end
25  subroutine r(dtv, unit, iotype, v_list, iostat, iomsg)
26    class(t1), intent(inout) :: dtv
27    integer, intent(in) :: unit
28    character (len=*), intent(in) :: iotype
29    integer, intent(in) :: v_list(:)
30    integer, intent(out) :: iostat
31    character (len=*), intent(inout) :: iomsg
32  end
33end
34
35!Expect: m.mod
36!module m
37!  type::t1
38!  contains
39!    procedure,nopass::s2
40!    procedure,nopass::s3
41!    procedure::r
42!    generic::foo=>s2
43!    generic::read(formatted)=>r
44!  end type
45!  type,extends(t1)::t2
46!  contains
47!    procedure,nopass::s4
48!    generic::foo=>s3
49!    generic::foo=>s4
50!  end type
51!contains
52!  subroutine s2(i)
53!    integer(4)::i
54!  end
55!  subroutine s3(r)
56!    real(4)::r
57!  end
58!  subroutine s4(z)
59!    complex(4)::z
60!  end
61!  subroutine r(dtv,unit,iotype,v_list,iostat,iomsg)
62!    class(t1),intent(inout)::dtv
63!    integer(4),intent(in)::unit
64!    character(*,1),intent(in)::iotype
65!    integer(4),intent(in)::v_list(:)
66!    integer(4),intent(out)::iostat
67!    character(*,1),intent(inout)::iomsg
68!  end
69!end
70