summaryrefslogtreecommitdiffstats
path: root/llvm/test/TableGen/foreach.td
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/TableGen/foreach.td')
-rw-r--r--llvm/test/TableGen/foreach.td31
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>;
OpenPOWER on IntegriCloud