diff options
| author | Hal Finkel <hfinkel@anl.gov> | 2015-05-21 04:32:56 +0000 |
|---|---|---|
| committer | Hal Finkel <hfinkel@anl.gov> | 2015-05-21 04:32:56 +0000 |
| commit | d24973657241dd53afbbf365d52a44b8a28062bc (patch) | |
| tree | 6233179a2e6750d2660164c2917779989b0540d7 /llvm/test/TableGen | |
| parent | 0b73d71abb5f08e435a6731bc65f4cb9d755f00c (diff) | |
| download | bcm5719-llvm-d24973657241dd53afbbf365d52a44b8a28062bc.tar.gz bcm5719-llvm-d24973657241dd53afbbf365d52a44b8a28062bc.zip | |
[TableGen] Resolve complex def names inside multiclasses
We had not been trying hard enough to resolve def names inside multiclasses
that had complex concatenations, etc. Now we'll try harder.
Patch by Amaury Sechet!
llvm-svn: 237877
Diffstat (limited to 'llvm/test/TableGen')
| -rw-r--r-- | llvm/test/TableGen/MultiClassDefName.td | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/llvm/test/TableGen/MultiClassDefName.td b/llvm/test/TableGen/MultiClassDefName.td index 811d92667eb..fafa1ad3081 100644 --- a/llvm/test/TableGen/MultiClassDefName.td +++ b/llvm/test/TableGen/MultiClassDefName.td @@ -39,3 +39,45 @@ multiclass MC2<string name> { defm : MC2<"bar">; +multiclass MC3<string s> { + def ZFizz#s : C<s>; +} + +defm : MC3<"Buzz">; + +// CHECK: def ZFizzBuzz +// CHECK: string name = "Buzz"; +// CHECK-NOT: MC3::s + +multiclass MC4<string s> { + def NAME#s : C<s>; +} + +defm ZTagazok : MC4<"AToi">; + +// CHECK: def ZTagazokAToi +// CHECK: string name = "AToi"; +// CHECK-NOT: MC4::s + +multiclass MC5<C c> { + def NAME#c.name : C<c.name>; +} + +def CTiger : C<"Tiger">; +defm Zebra : MC5<CTiger>; + +// CHECK: def ZebraTiger +// CHECK: string name = "Tiger"; +// CHECK-NOT: MC5::c + +multiclass MC6<C c> { + def NAME#Tiger#c.name : C<c.name>; +} + +def CAligator : C<"Aligator">; +defm Zebra : MC6<CAligator>; + +// CHECK: def ZebraTigerAligator +// CHECK: string name = "Aligator"; +// CHECK-NOT: MC6::c + |

