diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/TableGen/Record.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/include/llvm/TableGen/Record.h b/include/llvm/TableGen/Record.h index 905126b2b3..0c9c909972 100644 --- a/include/llvm/TableGen/Record.h +++ b/include/llvm/TableGen/Record.h @@ -1385,7 +1385,7 @@ class Record { unsigned ID; Init *Name; SMLoc Loc; - std::vector<std::string> TemplateArgs; + std::vector<Init *> TemplateArgs; std::vector<RecordVal> Values; std::vector<Record*> SuperClasses; @@ -1425,17 +1425,20 @@ public: /// get the corresponding DefInit. DefInit *getDefInit(); - const std::vector<std::string> &getTemplateArgs() const { + const std::vector<Init *> &getTemplateArgs() const { return TemplateArgs; } const std::vector<RecordVal> &getValues() const { return Values; } const std::vector<Record*> &getSuperClasses() const { return SuperClasses; } - bool isTemplateArg(StringRef Name) const { + bool isTemplateArg(Init *Name) const { for (unsigned i = 0, e = TemplateArgs.size(); i != e; ++i) if (TemplateArgs[i] == Name) return true; return false; } + bool isTemplateArg(StringRef Name) const { + return isTemplateArg(StringInit::get(Name.str())); + } const RecordVal *getValue(StringRef Name) const { for (unsigned i = 0, e = Values.size(); i != e; ++i) @@ -1451,10 +1454,13 @@ public: const RecordVal *getValue(Init *Name) const; RecordVal *getValue(Init *Name); - void addTemplateArg(StringRef Name) { + void addTemplateArg(Init *Name) { assert(!isTemplateArg(Name) && "Template arg already defined!"); TemplateArgs.push_back(Name); } + void addTemplateArg(StringRef Name) { + addTemplateArg(StringInit::get(Name.str())); + } void addValue(const RecordVal &RV) { assert(getValue(RV.getName()) == 0 && "Value already added!"); |