diff options
Diffstat (limited to 'llvm/test/TableGen/foreach.td')
-rw-r--r-- | llvm/test/TableGen/foreach.td | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/test/TableGen/foreach.td b/llvm/test/TableGen/foreach.td new file mode 100644 index 00000000000..589520a6f02 --- /dev/null +++ b/llvm/test/TableGen/foreach.td @@ -0,0 +1,31 @@ +// RUN: tblgen %s | grep {Jr} | count 2 +// RUN: tblgen %s | grep {Sr} | count 2 +// RUN: tblgen %s | not grep {NAME} + +// Variables for foreach +class decls { + string name; +} + +def Decls : decls; + +class A<list<string> names> { + list<string> Names = names; +} + +class B<list<string> names> : A<!foreach(Decls.name, names, !strconcat(Decls.name, ", Sr."))>; + +class C<list<string> names> : A<!foreach(Decls.name, names, !strconcat(Decls.name, ", Jr."))>; + +class D<list<string> names> : A<!foreach(Decls.name, names, !subst("NAME", "John Smith", Decls.name))>; + +class Names { + list<string> values = ["Ken Griffey", "Seymour Cray"]; +} + +def People : Names; + +def Seniors : B<People.values>; +def Juniors : C<People.values>; +def Smiths : D<["NAME", "Jane Smith"]>; +def Unprocessed : D<People.values>; |