1 // RUN: llvm-tblgen %s | FileCheck %s 2 // XFAIL: vg_leak 3 4 class Droid<string series, int release, string model, int patchlevel> { 5 string Series = series; 6 int Release = release; 7 string Model = model; 8 int Patchlevel = patchlevel; 9 } 10 11 foreach S = ["R", "C"] in { 12 foreach R = [2, 3, 4] in { 13 foreach M = ["D", "P", "Q"] in { 14 foreach P = [0, 2, 4] in { 15 def S#R#M#P : Droid<S, R, M, P>; 16 } 17 } 18 } 19 } 20 21 // CHECK: def C2D0 22 // CHECK: def C2D2 23 // CHECK: def C2D4 24 // CHECK: def C2P0 25 // CHECK: def C2P2 26 // CHECK: def C2P4 27 // CHECK: def C2Q0 28 // CHECK: def C2Q2 29 // CHECK: def C2Q4 30 // CHECK: def C3D0 31 // CHECK: def C3D2 32 // CHECK: def C3D4 33 // CHECK: def C3P0 34 // CHECK: def C3P2 35 // CHECK: def C3P4 36 // CHECK: def C3Q0 37 // CHECK: def C3Q2 38 // CHECK: def C3Q4 39 // CHECK: def C4D0 40 // CHECK: def C4D2 41 // CHECK: def C4D4 42 // CHECK: def C4P0 43 // CHECK: def C4P2 44 // CHECK: def C4P4 45 // CHECK: def C4Q0 46 // CHECK: def C4Q2 47 // CHECK: def C4Q4 48 // CHECK: def R2D0 49 // CHECK: def R2D2 50 // CHECK: def R2D4 51 // CHECK: def R2P0 52 // CHECK: def R2P2 53 // CHECK: def R2P4 54 // CHECK: def R2Q0 55 // CHECK: def R2Q2 56 // CHECK: def R2Q4 57 // CHECK: def R3D0 58 // CHECK: def R3D2 59 // CHECK: def R3D4 60 // CHECK: def R3P0 61 // CHECK: def R3P2 62 // CHECK: def R3P4 63 // CHECK: def R3Q0 64 // CHECK: def R3Q2 65 // CHECK: def R3Q4 66 // CHECK: def R4D0 67 // CHECK: def R4D2 68 // CHECK: def R4D4 69 // CHECK: def R4P0 70 // CHECK: def R4P2 71 // CHECK: def R4P4 72 // CHECK: def R4Q0 73 // CHECK: def R4Q2 74 // CHECK: def R4Q4 75