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