Break circular dependency between FIR dialect and utilities
[llvm-project.git] / flang / test / Semantics / modfile24.f90
blobdb45c94887abb0004cc60918484a8b588f46069e
1 ! RUN: %python %S/test_modfile.py %s %flang_fc1
2 ! Test declarations with coarray-spec
4 ! Different ways of declaring the same coarray.
5 module m1
6 real :: a(1:5)[1:10,1:*]
7 real, dimension(5) :: b[1:10,1:*]
8 real, codimension[1:10,1:*] :: c(5)
9 real, codimension[1:10,1:*], dimension(5) :: d
10 codimension :: e[1:10,1:*]
11 dimension :: e(5)
12 real :: e
13 end
14 !Expect: m1.mod
15 !module m1
16 ! real(4)::a(1_8:5_8)[1_8:10_8,1_8:*]
17 ! real(4)::b(1_8:5_8)[1_8:10_8,1_8:*]
18 ! real(4)::c(1_8:5_8)[1_8:10_8,1_8:*]
19 ! real(4)::d(1_8:5_8)[1_8:10_8,1_8:*]
20 ! real(4)::e(1_8:5_8)[1_8:10_8,1_8:*]
21 !end
23 ! coarray-spec in codimension and target statements.
24 module m2
25 codimension :: a[10,*], b[*]
26 target :: c[10,*], d[*]
27 end
28 !Expect: m2.mod
29 !module m2
30 ! real(4)::a[1_8:10_8,1_8:*]
31 ! real(4)::b[1_8:*]
32 ! real(4),target::c[1_8:10_8,1_8:*]
33 ! real(4),target::d[1_8:*]
34 !end
36 ! coarray-spec in components and with non-constants bounds
37 module m3
38 type t
39 real, allocatable :: c[:,:]
40 complex, allocatable, codimension[:,:] :: d
41 end type
42 real, allocatable :: e[:,:,:]
43 contains
44 subroutine s(a, b, n)
45 integer(8) :: n
46 real :: a[1:n,2:*]
47 real, codimension[1:n,2:*] :: b
48 end
49 end
50 !Expect: m3.mod
51 !module m3
52 ! type::t
53 ! real(4),allocatable::c[:,:]
54 ! complex(4),allocatable::d[:,:]
55 ! end type
56 ! real(4),allocatable::e[:,:,:]
57 !contains
58 ! subroutine s(a,b,n)
59 ! integer(8)::n
60 ! real(4)::a[1_8:n,2_8:*]
61 ! real(4)::b[1_8:n,2_8:*]
62 ! end
63 !end
65 ! coarray-spec in both attributes and entity-decl
66 module m4
67 real, codimension[2:*], dimension(2:5) :: a, b(4,4), c[10,*], d(4,4)[10,*]
68 end
69 !Expect: m4.mod
70 !module m4
71 ! real(4)::a(2_8:5_8)[2_8:*]
72 ! real(4)::b(1_8:4_8,1_8:4_8)[2_8:*]
73 ! real(4)::c(2_8:5_8)[1_8:10_8,1_8:*]
74 ! real(4)::d(1_8:4_8,1_8:4_8)[1_8:10_8,1_8:*]
75 !end