diff options
author | Matthias Braun <matze@braunis.de> | 2016-12-05 06:00:46 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2016-12-05 06:00:46 +0000 |
commit | bb053164413d86d0e7b354dec68f521c073ff4c4 (patch) | |
tree | 9d9d46fb86555ab502ccf0f478ceb2edc6cb1716 /llvm/lib/TableGen/TGParser.cpp | |
parent | 7cf3b112248267e517758894ab8e6333792aea60 (diff) | |
download | bcm5719-llvm-bb053164413d86d0e7b354dec68f521c073ff4c4.tar.gz bcm5719-llvm-bb053164413d86d0e7b354dec68f521c073ff4c4.zip |
TableGen: Use StringInit instead of std::string for DagInit arg names
llvm-svn: 288644
Diffstat (limited to 'llvm/lib/TableGen/TGParser.cpp')
-rw-r--r-- | llvm/lib/TableGen/TGParser.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/llvm/lib/TableGen/TGParser.cpp b/llvm/lib/TableGen/TGParser.cpp index cbee2e3289b..690cbf929c8 100644 --- a/llvm/lib/TableGen/TGParser.cpp +++ b/llvm/lib/TableGen/TGParser.cpp @@ -1428,7 +1428,7 @@ Init *TGParser::ParseSimpleValue(Record *CurRec, RecTy *ItemType, Lex.Lex(); // eat the VarName. } - std::vector<std::pair<llvm::Init*, std::string> > DagArgs; + std::vector<std::pair<llvm::Init*, StringInit*> > DagArgs; if (Lex.getCode() != tgtok::r_paren) { DagArgs = ParseDagArgList(CurRec); if (DagArgs.empty()) return nullptr; @@ -1603,30 +1603,31 @@ Init *TGParser::ParseValue(Record *CurRec, RecTy *ItemType, IDParseMode Mode) { /// DagArg ::= VARNAME /// DagArgList ::= DagArg /// DagArgList ::= DagArgList ',' DagArg -std::vector<std::pair<llvm::Init*, std::string> > +std::vector<std::pair<llvm::Init*, StringInit*> > TGParser::ParseDagArgList(Record *CurRec) { - std::vector<std::pair<llvm::Init*, std::string> > Result; + std::vector<std::pair<llvm::Init*, StringInit*> > Result; while (true) { // DagArg ::= VARNAME if (Lex.getCode() == tgtok::VarName) { // A missing value is treated like '?'. - Result.emplace_back(UnsetInit::get(), Lex.getCurStrVal()); + StringInit *VarName = StringInit::get(Lex.getCurStrVal()); + Result.emplace_back(UnsetInit::get(), VarName); Lex.Lex(); } else { // DagArg ::= Value (':' VARNAME)? Init *Val = ParseValue(CurRec); if (!Val) - return std::vector<std::pair<llvm::Init*, std::string> >(); + return std::vector<std::pair<llvm::Init*, StringInit*> >(); // If the variable name is present, add it. - std::string VarName; + StringInit *VarName = nullptr; if (Lex.getCode() == tgtok::colon) { if (Lex.Lex() != tgtok::VarName) { // eat the ':' TokError("expected variable name in dag literal"); - return std::vector<std::pair<llvm::Init*, std::string> >(); + return std::vector<std::pair<llvm::Init*, StringInit*> >(); } - VarName = Lex.getCurStrVal(); + VarName = StringInit::get(Lex.getCurStrVal()); Lex.Lex(); // eat the VarName. } |