170 lines · plain
1! RUN: %python %S/test_modfile.py %s %flang_fc12! Tests parameterized derived type instantiation with KIND parameters3 4module m5 type :: capture(k1,k2,k4,k8)6 integer(kind=1), kind :: k17 integer(kind=2), kind :: k28 integer(kind=4), kind :: k49 integer(kind=8), kind :: k810 integer(kind=k1) :: j111 integer(kind=k2) :: j212 integer(kind=k4) :: j413 integer(kind=k8) :: j814 end type capture15 type :: defaulted(n1,n2,n4,n8)16 integer(kind=1), kind :: n1 = 117 integer(kind=2), kind :: n2 = n1 * 218 integer(kind=4), kind :: n4 = 2 * n219 integer(kind=8), kind :: n8 = 12 - n420 type(capture(n1,n2,n4,n8)) :: cap21 end type defaulted22 type, extends(defaulted) :: extension(k5)23 integer(kind=4), kind :: k5 = 424 integer(kind=k5) :: j525 end type extension26 type(capture(1,1,1,1)) :: x111127 integer(kind=x1111%j1%kind) :: res01_128 integer(kind=x1111%j2%kind) :: res02_129 integer(kind=x1111%j4%kind) :: res03_130 integer(kind=x1111%j8%kind) :: res04_131 type(capture(8,8,8,8)) :: x888832 integer(kind=x8888%j1%kind) :: res05_833 integer(kind=x8888%j2%kind) :: res06_834 integer(kind=x8888%j4%kind) :: res07_835 integer(kind=x8888%j8%kind) :: res08_836 type(capture(2,k8=1,k4=8,k2=4)) :: x248137 integer(kind=x2481%j1%kind) :: res09_238 integer(kind=x2481%j2%kind) :: res10_439 integer(kind=x2481%j4%kind) :: res11_840 integer(kind=x2481%j8%kind) :: res12_141 type(capture(2,1,k4=8,k8=4)) :: x218442 integer(kind=x2184%j1%kind) :: res13_243 integer(kind=x2184%j2%kind) :: res14_144 integer(kind=x2184%j4%kind) :: res15_845 integer(kind=x2184%j8%kind) :: res16_446 type(defaulted) :: x124847 integer(kind=x1248%cap%j1%kind) :: res17_148 integer(kind=x1248%cap%j2%kind) :: res18_249 integer(kind=x1248%cap%j4%kind) :: res19_450 integer(kind=x1248%cap%j8%kind) :: res20_851 type(defaulted(2)) :: x248452 integer(kind=x2484%cap%j1%kind) :: res21_253 integer(kind=x2484%cap%j2%kind) :: res22_454 integer(kind=x2484%cap%j4%kind) :: res23_855 integer(kind=x2484%cap%j8%kind) :: res24_456 type(defaulted(n8=2)) :: x124257 integer(kind=x1242%cap%j1%kind) :: res25_158 integer(kind=x1242%cap%j2%kind) :: res26_259 integer(kind=x1242%cap%j4%kind) :: res27_460 integer(kind=x1242%cap%j8%kind) :: res28_261 type(extension(1,1,1,1,1)) :: x1111162 integer(kind=x11111%defaulted%cap%j1%kind) :: res29_163 integer(kind=x11111%cap%j2%kind) :: res30_164 integer(kind=x11111%cap%j4%kind) :: res31_165 integer(kind=x11111%cap%j8%kind) :: res32_166 integer(kind=x11111%j5%kind) :: res33_167 type(extension(2,8,4,1,8)) :: x2841868 integer(kind=x28418%defaulted%cap%j1%kind) :: res34_269 integer(kind=x28418%cap%j2%kind) :: res35_870 integer(kind=x28418%cap%j4%kind) :: res36_471 integer(kind=x28418%cap%j8%kind) :: res37_172 integer(kind=x28418%j5%kind) :: res38_873 type(extension(8,n8=1,k5=2,n2=4,n4=8)) :: x8481274 integer(kind=x84812%defaulted%cap%j1%kind) :: res39_875 integer(kind=x84812%cap%j2%kind) :: res40_476 integer(kind=x84812%cap%j4%kind) :: res41_877 integer(kind=x84812%cap%j8%kind) :: res42_178 integer(kind=x84812%j5%kind) :: res43_279 type(extension(k5=2)) :: x1248280 integer(kind=x12482%defaulted%cap%j1%kind) :: res44_181 integer(kind=x12482%cap%j2%kind) :: res45_282 integer(kind=x12482%cap%j4%kind) :: res46_483 integer(kind=x12482%cap%j8%kind) :: res47_884 integer(kind=x12482%j5%kind) :: res48_285end module86 87!Expect: m.mod88!module m89!type::capture(k1,k2,k4,k8)90!integer(1),kind::k191!integer(2),kind::k292!integer(4),kind::k493!integer(8),kind::k894!integer(int(int(k1,kind=1),kind=8))::j195!integer(int(int(k2,kind=2),kind=8))::j296!integer(int(int(k4,kind=4),kind=8))::j497!integer(k8)::j898!end type99!type::defaulted(n1,n2,n4,n8)100!integer(1),kind::n1=1_4101!integer(2),kind::n2=2_4*int(int(n1,kind=1),kind=4)102!integer(4),kind::n4=2_4*int(int(n2,kind=2),kind=4)103!integer(8),kind::n8=12_4-int(n4,kind=4)104!type(capture(k1=int(n1,kind=1),k2=int(n2,kind=2),k4=int(n4,kind=4),k8=n8))::cap105!end type106!type,extends(defaulted)::extension(k5)107!integer(4),kind::k5=4_4108!integer(int(int(k5,kind=4),kind=8))::j5109!end type110!type(capture(k1=1_1,k2=1_2,k4=1_4,k8=1_8))::x1111111!integer(1)::res01_1112!integer(1)::res02_1113!integer(1)::res03_1114!integer(1)::res04_1115!type(capture(k1=8_1,k2=8_2,k4=8_4,k8=8_8))::x8888116!integer(8)::res05_8117!integer(8)::res06_8118!integer(8)::res07_8119!integer(8)::res08_8120!type(capture(k1=2_1,k2=4_2,k4=8_4,k8=1_8))::x2481121!integer(2)::res09_2122!integer(4)::res10_4123!integer(8)::res11_8124!integer(1)::res12_1125!type(capture(k1=2_1,k2=1_2,k4=8_4,k8=4_8))::x2184126!integer(2)::res13_2127!integer(1)::res14_1128!integer(8)::res15_8129!integer(4)::res16_4130!type(defaulted(n1=1_1,n2=2_2,n4=4_4,n8=8_8))::x1248131!integer(1)::res17_1132!integer(2)::res18_2133!integer(4)::res19_4134!integer(8)::res20_8135!type(defaulted(n1=2_1,n2=4_2,n4=8_4,n8=4_8))::x2484136!integer(2)::res21_2137!integer(4)::res22_4138!integer(8)::res23_8139!integer(4)::res24_4140!type(defaulted(n1=1_1,n2=2_2,n4=4_4,n8=2_8))::x1242141!integer(1)::res25_1142!integer(2)::res26_2143!integer(4)::res27_4144!integer(2)::res28_2145!type(extension(k5=1_4,n1=1_1,n2=1_2,n4=1_4,n8=1_8))::x11111146!integer(1)::res29_1147!integer(1)::res30_1148!integer(1)::res31_1149!integer(1)::res32_1150!integer(1)::res33_1151!type(extension(k5=8_4,n1=2_1,n2=8_2,n4=4_4,n8=1_8))::x28418152!integer(2)::res34_2153!integer(8)::res35_8154!integer(4)::res36_4155!integer(1)::res37_1156!integer(8)::res38_8157!type(extension(k5=2_4,n1=8_1,n2=4_2,n4=8_4,n8=1_8))::x84812158!integer(8)::res39_8159!integer(4)::res40_4160!integer(8)::res41_8161!integer(1)::res42_1162!integer(2)::res43_2163!type(extension(k5=2_4,n1=1_1,n2=2_2,n4=4_4,n8=8_8))::x12482164!integer(1)::res44_1165!integer(2)::res45_2166!integer(4)::res46_4167!integer(8)::res47_8168!integer(2)::res48_2169!end170