1! RUN: %S/test_modfile.sh %s %t %flang_fc1
2! REQUIRES: shell
3module m
4  integer(8), parameter :: a = 1, b = 2_8
5  parameter(n=3,l=-3,e=1.0/3.0)
6  real :: x(a:2*(a+b*n)-1)
7  real, dimension(8) :: y
8  type t(c, d)
9    integer, kind :: c = 1
10    integer, len :: d = a + b
11  end type
12  type(t(a+3,:)), allocatable :: z
13  class(t(a+4,:)), allocatable :: z2
14  class(*), allocatable :: z4
15  real*2 :: f
16  complex*32 :: g
17  type t2(i, j, h)
18    integer, len :: h
19    integer, kind :: j
20    integer, len :: i
21  end type
22contains
23  subroutine foo(x)
24    real :: x(2:)
25  end
26  subroutine bar(x)
27    real :: x(..)
28  end
29  subroutine baz(x)
30    type(*) :: x
31  end
32end
33
34!Expect: m.mod
35!module m
36!  integer(8),parameter::a=1_8
37!  integer(8),parameter::b=2_8
38!  integer(4),parameter::n=3_4
39!  integer(4),parameter::l=-3_4
40!  real(4),parameter::e=3.333333432674407958984375e-1_4
41!  real(4)::x(1_8:13_8)
42!  real(4)::y(1_8:8_8)
43!  type::t(c,d)
44!    integer(4),kind::c=1_4
45!    integer(4),len::d=3_4
46!  end type
47!  type(t(c=4_4,d=:)),allocatable::z
48!  class(t(c=5_4,d=:)),allocatable::z2
49!  class(*),allocatable::z4
50!  real(2)::f
51!  complex(16)::g
52!  type::t2(i,j,h)
53!    integer(4),len::h
54!    integer(4),kind::j
55!    integer(4),len::i
56!  end type
57!contains
58!  subroutine foo(x)
59!    real(4)::x(2_8:)
60!  end
61!  subroutine bar(x)
62!    real(4)::x(..)
63!  end
64!  subroutine baz(x)
65!    type(*)::x
66!  end
67!end
68