[llvm-exegesis][NFC] Improve parsing of the YAML files
[llvm-core.git] / test / TableGen / name-resolution-consistency.td
blobe729f69e1424b0ea89472df7bd2353f0fe016bb1
1 // RUN: llvm-tblgen %s | FileCheck %s
2 // XFAIL: vg_leak
4 // CHECK: def B0a {
5 // CHECK:   string e = "B0";
6 // CHECK: }
8 // CHECK: def B0ba {
9 // CHECK:   string a = "B0b";
10 // CHECK:   string b = "B0";
11 // CHECK: }
13 // CHECK: def B0bys {
14 // CHECK:   string f = "B0b";
15 // CHECK:   string g = "B0";
16 // CHECK: }
18 // CHECK: def B0cza {
19 // CHECK:   string a = "B0cz";
20 // CHECK:   string b = "B0";
21 // CHECK: }
23 // CHECK: def B0czyt {
24 // CHECK:   string f = "B0cz";
25 // CHECK:   string g = "B0";
26 // CHECK: }
28 // CHECK: def C0 {
29 // CHECK:   string a = "C0";
30 // CHECK:   string b = "C0";
31 // CHECK:   string c = "a";
32 // CHECK: }
34 // CHECK: def D0a {
35 // CHECK:   string a = "D0a";
36 // CHECK:   string b = "D0a";
37 // CHECK:   string c = "D0";
38 // CHECK: }
40 // CHECK: def D0b {
41 // CHECK:   string a = "D0b";
42 // CHECK:   string b = "D0b";
43 // CHECK:   string c = "a";
44 // CHECK: }
46 // CHECK: def xB0b {
47 // CHECK:   string c = "B0b";
48 // CHECK:   string d = "B0";
49 // CHECK: }
51 // CHECK: def xB0cz {
52 // CHECK:   string c = "B0cz";
53 // CHECK:   string d = "B0";
54 // CHECK: }
56 multiclass A<string p, string q> {
57   def a {
58     string a = NAME;
59     string b = p;
60   }
62   def x # NAME {
63     string c = NAME;
64     string d = p;
65   }
67   def y # q {
68     string f = NAME;
69     string g = p;
70   }
73 multiclass B<string name, string t> {
74   def a {
75     string e = NAME;
76   }
78   defm b : A<NAME, "s">;
80   defm NAME # c # name : A<NAME, t>;
83 defm B0 : B<"z", "t">;
85 class Cbase {
86   string a = NAME;
89 class C<string arg> : Cbase {
90   string b = NAME;
91   string c = arg;
94 def C0 : C<"a">;
96 multiclass D<string arg> {
97   def a : C<NAME>;
98   def b : C<arg>;
101 defm D0 : D<"a">;