foreach.td 833 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // RUN: llvm-tblgen %s | FileCheck %s
  2. // XFAIL: vg_leak
  3. // CHECK: Classes
  4. // CHECK: Sr
  5. // CHECK: Jr
  6. // CHECK: "NAME"
  7. // CHECK: Defs
  8. // CHECK: Jr
  9. // CHECK: Sr
  10. // Variables for foreach
  11. class decls {
  12. string name;
  13. }
  14. def Decls : decls;
  15. class A<list<string> names> {
  16. list<string> Names = names;
  17. }
  18. class B<list<string> names> : A<!foreach(Decls.name, names, !strconcat(Decls.name, ", Sr."))>;
  19. class C<list<string> names> : A<!foreach(Decls.name, names, !strconcat(Decls.name, ", Jr."))>;
  20. class D<list<string> names> : A<!foreach(Decls.name, names, !subst("NAME", "John Smith", Decls.name))>;
  21. class Names {
  22. list<string> values = ["Ken Griffey", "Seymour Cray"];
  23. }
  24. def People : Names;
  25. def Seniors : B<People.values>;
  26. def Juniors : C<People.values>;
  27. def Smiths : D<["NAME", "Jane Smith"]>;
  28. def Unprocessed : D<People.values>;