1 // RUN: llvm-tblgen %s | FileCheck %s 2 // XFAIL: vg_leak 3 4 class Set<int i = 0, int j = 0, int k = 0> { 5 int I = i; 6 int J = j; 7 int K = k; 8 } 9 10 foreach 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