1// RUN: llvm-tblgen %s | FileCheck %s 2// XFAIL: vg_leak 3 4class Set<int i = 0, int j = 0, int k = 0> { 5 int I = i; 6 int J = j; 7 int K = k; 8} 9 10foreach i = [1, 2, 3] in { 11 def I1_#i : Set<i>; 12 foreach j = [1, 2, 3] in { 13 def I1_#i#_J1_#j : Set<i, j>; 14 } 15 def I2_#i : Set<i>; 16 foreach j = [4, 5, 6] in { 17 foreach k = [1, 2, 3] in { 18 def I3_#i#_J2_#j#_K1_#k : Set<i, j, k>; 19 } 20 def I4_#i#_J3_#j : Set<i, j>; 21 } 22} 23 24// CHECK: def I1_1 25// CHECK: int I = 1; 26// CHECK: int J = 0; 27// CHECK: int K = 0; 28 29// CHECK: def I1_1_J1_1 30// CHECK: int I = 1; 31// CHECK: int J = 1; 32// CHECK: int K = 0; 33 34// CHECK: def I1_1_J1_2 35// CHECK: int I = 1; 36// CHECK: int J = 2; 37// CHECK: int K = 0; 38 39// CHECK: def I1_1_J1_3 40// CHECK: int I = 1; 41// CHECK: int J = 3; 42// CHECK: int K = 0; 43 44// CHECK: def I1_2 45// CHECK: int I = 2; 46// CHECK: int J = 0; 47// CHECK: int K = 0; 48 49// CHECK: def I1_2_J1_1 50// CHECK: int I = 2; 51// CHECK: int J = 1; 52// CHECK: int K = 0; 53 54// CHECK: def I1_2_J1_2 55// CHECK: int I = 2; 56// CHECK: int J = 2; 57// CHECK: int K = 0; 58 59// CHECK: def I1_2_J1_3 60// CHECK: int I = 2; 61// CHECK: int J = 3; 62// CHECK: int K = 0; 63 64// CHECK: def I1_3 65// CHECK: int I = 3; 66// CHECK: int J = 0; 67// CHECK: int K = 0; 68 69// CHECK: def I1_3_J1_1 70// CHECK: int I = 3; 71// CHECK: int J = 1; 72// CHECK: int K = 0; 73 74// CHECK: def I1_3_J1_2 75// CHECK: int I = 3; 76// CHECK: int J = 2; 77// CHECK: int K = 0; 78 79// CHECK: def I1_3_J1_3 80// CHECK: int I = 3; 81// CHECK: int J = 3; 82// CHECK: int K = 0; 83 84// CHECK: def I2_1 85// CHECK: int I = 1; 86// CHECK: int J = 0; 87// CHECK: int K = 0; 88 89// CHECK: def I2_2 90// CHECK: int I = 2; 91// CHECK: int J = 0; 92// CHECK: int K = 0; 93 94// CHECK: def I2_3 95// CHECK: int I = 3; 96// CHECK: int J = 0; 97// CHECK: int K = 0; 98 99// CHECK: def I3_1_J2_4_K1_1 100// CHECK: int I = 1; 101// CHECK: int J = 4; 102// CHECK: int K = 1; 103 104// CHECK: def I3_1_J2_4_K1_2 105// CHECK: int I = 1; 106// CHECK: int J = 4; 107// CHECK: int K = 2; 108 109// CHECK: def I3_1_J2_4_K1_3 110// CHECK: int I = 1; 111// CHECK: int J = 4; 112// CHECK: int K = 3; 113 114// CHECK: def I3_1_J2_5_K1_1 115// CHECK: int I = 1; 116// CHECK: int J = 5; 117// CHECK: int K = 1; 118 119// CHECK: def I3_1_J2_5_K1_2 120// CHECK: int I = 1; 121// CHECK: int J = 5; 122// CHECK: int K = 2; 123 124// CHECK: def I3_1_J2_5_K1_3 125// CHECK: int I = 1; 126// CHECK: int J = 5; 127// CHECK: int K = 3; 128 129// CHECK: def I3_1_J2_6_K1_1 130// CHECK: int I = 1; 131// CHECK: int J = 6; 132// CHECK: int K = 1; 133 134// CHECK: def I3_1_J2_6_K1_2 135// CHECK: int I = 1; 136// CHECK: int J = 6; 137// CHECK: int K = 2; 138 139// CHECK: def I3_1_J2_6_K1_3 140// CHECK: int I = 1; 141// CHECK: int J = 6; 142// CHECK: int K = 3; 143 144// CHECK: def I3_2_J2_4_K1_1 145// CHECK: int I = 2; 146// CHECK: int J = 4; 147// CHECK: int K = 1; 148 149// CHECK: def I3_2_J2_4_K1_2 150// CHECK: int I = 2; 151// CHECK: int J = 4; 152// CHECK: int K = 2; 153 154// CHECK: def I3_2_J2_4_K1_3 155// CHECK: int I = 2; 156// CHECK: int J = 4; 157// CHECK: int K = 3; 158 159// CHECK: def I3_2_J2_5_K1_1 160// CHECK: int I = 2; 161// CHECK: int J = 5; 162// CHECK: int K = 1; 163 164// CHECK: def I3_2_J2_5_K1_2 165// CHECK: int I = 2; 166// CHECK: int J = 5; 167// CHECK: int K = 2; 168 169// CHECK: def I3_2_J2_5_K1_3 170// CHECK: int I = 2; 171// CHECK: int J = 5; 172// CHECK: int K = 3; 173 174// CHECK: def I3_2_J2_6_K1_1 175// CHECK: int I = 2; 176// CHECK: int J = 6; 177// CHECK: int K = 1; 178 179// CHECK: def I3_2_J2_6_K1_2 180// CHECK: int I = 2; 181// CHECK: int J = 6; 182// CHECK: int K = 2; 183 184// CHECK: def I3_2_J2_6_K1_3 185// CHECK: int I = 2; 186// CHECK: int J = 6; 187// CHECK: int K = 3; 188 189// CHECK: def I3_3_J2_4_K1_1 190// CHECK: int I = 3; 191// CHECK: int J = 4; 192// CHECK: int K = 1; 193 194// CHECK: def I3_3_J2_4_K1_2 195// CHECK: int I = 3; 196// CHECK: int J = 4; 197// CHECK: int K = 2; 198 199// CHECK: def I3_3_J2_4_K1_3 200// CHECK: int I = 3; 201// CHECK: int J = 4; 202// CHECK: int K = 3; 203 204// CHECK: def I3_3_J2_5_K1_1 205// CHECK: int I = 3; 206// CHECK: int J = 5; 207// CHECK: int K = 1; 208 209// CHECK: def I3_3_J2_5_K1_2 210// CHECK: int I = 3; 211// CHECK: int J = 5; 212// CHECK: int K = 2; 213 214// CHECK: def I3_3_J2_5_K1_3 215// CHECK: int I = 3; 216// CHECK: int J = 5; 217// CHECK: int K = 3; 218 219// CHECK: def I3_3_J2_6_K1_1 220// CHECK: int I = 3; 221// CHECK: int J = 6; 222// CHECK: int K = 1; 223 224// CHECK: def I3_3_J2_6_K1_2 225// CHECK: int I = 3; 226// CHECK: int J = 6; 227// CHECK: int K = 2; 228 229// CHECK: def I3_3_J2_6_K1_3 230// CHECK: int I = 3; 231// CHECK: int J = 6; 232// CHECK: int K = 3; 233 234// CHECK: def I4_1_J3_4 235// CHECK: int I = 1; 236// CHECK: int J = 4; 237// CHECK: int K = 0; 238 239// CHECK: def I4_1_J3_5 240// CHECK: int I = 1; 241// CHECK: int J = 5; 242// CHECK: int K = 0; 243 244// CHECK: def I4_1_J3_6 245// CHECK: int I = 1; 246// CHECK: int J = 6; 247// CHECK: int K = 0; 248 249// CHECK: def I4_2_J3_4 250// CHECK: int I = 2; 251// CHECK: int J = 4; 252// CHECK: int K = 0; 253 254// CHECK: def I4_2_J3_5 255// CHECK: int I = 2; 256// CHECK: int J = 5; 257// CHECK: int K = 0; 258 259// CHECK: def I4_2_J3_6 260// CHECK: int I = 2; 261// CHECK: int J = 6; 262// CHECK: int K = 0; 263 264// CHECK: def I4_3_J3_4 265// CHECK: int I = 3; 266// CHECK: int J = 4; 267// CHECK: int K = 0; 268 269// CHECK: def I4_3_J3_5 270// CHECK: int I = 3; 271// CHECK: int J = 5; 272// CHECK: int K = 0; 273 274// CHECK: def I4_3_J3_6 275// CHECK: int I = 3; 276// CHECK: int J = 6; 277// CHECK: int K = 0; 278