From 3c80e4c514d4e76b6917c9e066fb57824009f41d Mon Sep 17 00:00:00 2001 From: Nicolai Haehnle Date: Mon, 5 Mar 2018 14:01:38 +0000 Subject: 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 --- llvm/lib/TableGen/TGParser.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'llvm/lib/TableGen/TGParser.cpp') 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)) { -- cgit v1.2.3