diff options
author | Nicolai Haehnle <nhaehnle@gmail.com> | 2018-03-05 14:01:38 +0000 |
---|---|---|
committer | Nicolai Haehnle <nhaehnle@gmail.com> | 2018-03-05 14:01:38 +0000 |
commit | 3c80e4c514d4e76b6917c9e066fb57824009f41d (patch) | |
tree | e2ed2691a7497e821db433ce3521cda3d6b1a37a /llvm/lib/TableGen/TGParser.cpp | |
parent | 0409b28af1b7093886e500223be77d01bb8625d6 (diff) | |
download | bcm5719-llvm-3c80e4c514d4e76b6917c9e066fb57824009f41d.tar.gz bcm5719-llvm-3c80e4c514d4e76b6917c9e066fb57824009f41d.zip |
TableGen: Allow NAME in template arguments in defm in multiclass
Summary:
NAME has already worked for def in a multiclass, since the (protoype)
record including its NAME variable is created before parsing the
superclasses. Since defm's do not have an associated single record,
support for NAME has to be implemented differently here.
Original test cases provided by Artem Belevich (tra)
Change-Id: I933b74f328c0ff202e7dc23a35b78f3505760cc9
Reviewers: arsenm, craig.topper, tra, MartinO
Subscribers: wdng, llvm-commits
Differential Revision: https://reviews.llvm.org/D43656
llvm-svn: 326700
Diffstat (limited to 'llvm/lib/TableGen/TGParser.cpp')
-rw-r--r-- | llvm/lib/TableGen/TGParser.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/TableGen/TGParser.cpp b/llvm/lib/TableGen/TGParser.cpp index 10345b99706..baf97baa4c2 100644 --- a/llvm/lib/TableGen/TGParser.cpp +++ b/llvm/lib/TableGen/TGParser.cpp @@ -740,6 +740,9 @@ Init *TGParser::ParseIDValue(Record *CurRec, StringInit *Name, SMLoc NameLoc, } if (CurMultiClass) { + if (Name->getValue() == "NAME") + return VarInit::get(Name, StringRecTy::get()); + Init *MCName = QualifyName(CurMultiClass->Rec, CurMultiClass, Name, "::"); if (CurMultiClass->Rec.isTemplateArg(MCName)) { |