blob: d4d81f829ed72b20e6243dd3bc9a7b4c0cbcafe9 [file] [log] [blame]
David Greenebeb31a52009-05-14 22:23:47 +00001// RUN: tblgen %s | grep {Jr} | count 2
2// RUN: tblgen %s | grep {Sr} | count 2
David Greene7a572142009-05-14 23:21:40 +00003// RUN: tblgen %s | grep {NAME} | count 1
Jeffrey Yasskin32989de2010-03-20 23:08:45 +00004// XFAIL: vg_leak
David Greenebeb31a52009-05-14 22:23:47 +00005
6// Variables for foreach
7class decls {
8 string name;
9}
10
11def Decls : decls;
12
13class A<list<string> names> {
14 list<string> Names = names;
15}
16
17class B<list<string> names> : A<!foreach(Decls.name, names, !strconcat(Decls.name, ", Sr."))>;
18
19class C<list<string> names> : A<!foreach(Decls.name, names, !strconcat(Decls.name, ", Jr."))>;
20
21class D<list<string> names> : A<!foreach(Decls.name, names, !subst("NAME", "John Smith", Decls.name))>;
22
23class Names {
24 list<string> values = ["Ken Griffey", "Seymour Cray"];
25}
26
27def People : Names;
28
29def Seniors : B<People.values>;
30def Juniors : C<People.values>;
31def Smiths : D<["NAME", "Jane Smith"]>;
32def Unprocessed : D<People.values>;