1// RUN: llvm-tblgen %s | FileCheck %s 2// XFAIL: vg_leak 3 4class 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 11foreach 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