1! RUN: %S/test_modfile.sh %s %t %flang_fc1 2! REQUIRES: shell 3! Test folding of combined array references and structure component 4! references. 5 6module m1 7 type :: t1 8 integer :: ia1(2) 9 end type t1 10 type(t1), parameter :: t1x1(*) = [t1::t1(ia1=[1,2]),t1(ia1=[3,4])] 11 logical, parameter :: t1check1 = t1x1(2)%ia1(1) == 3 12 logical, parameter :: t1check2 = all(t1x1(1)%ia1 == [1,2]) 13 logical, parameter :: t1check3 = all(t1x1(:)%ia1(1) == [1,3]) 14 type :: t2 15 type(t1) :: dta1(2) 16 end type t2 17 type(t2), parameter :: t2x1(*) = & 18 [t2 :: t2(dta1=[t1::t1x1]), & 19 t2(dta1=[t1::t1(ia1=[5,6]),t1(ia1=[7,8])])] 20 logical, parameter :: t2check1 = t2x1(1)%dta1(2)%ia1(2) == 4 21 logical, parameter :: t2check2 = & 22 all(t2x1(2)%dta1(2)%ia1(:) == [7,8]) 23 logical, parameter :: t2check3 = & 24 all(t2x1(1)%dta1(:)%ia1(2) == [2,4]) 25 logical, parameter :: t2check4 = & 26 all(t2x1(:)%dta1(1)%ia1(2) == [2,6]) 27end module m1 28!Expect: m1.mod 29!module m1 30!type::t1 31!integer(4)::ia1(1_8:2_8) 32!end type 33!type(t1),parameter::t1x1(1_8:*)=[t1::t1(ia1=[INTEGER(4)::1_4,2_4]),t1(ia1=[INTEGER(4)::3_4,4_4])] 34!logical(4),parameter::t1check1=.true._4 35!logical(4),parameter::t1check2=.true._4 36!intrinsic::all 37!logical(4),parameter::t1check3=.true._4 38!type::t2 39!type(t1)::dta1(1_8:2_8) 40!end type 41!type(t2),parameter::t2x1(1_8:*)=[t2::t2(dta1=[t1::t1(ia1=[INTEGER(4)::1_4,2_4]),t1(ia1=[INTEGER(4)::3_4,4_4])]),t2(dta1=[t1::t1(ia1=[INTEGER(4)::5_4,6_4]),t1(ia1=[INTEGER(4)::7_4,8_4])])] 42!logical(4),parameter::t2check1=.true._4 43!logical(4),parameter::t2check2=.true._4 44!logical(4),parameter::t2check3=.true._4 45!logical(4),parameter::t2check4=.true._4 46!end 47