diff options
Diffstat (limited to 'llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp')
| -rw-r--r-- | llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index 3cfc46939bd..7a48ad627c2 100644 --- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -599,7 +599,8 @@ private: MipsAsmParser &AsmParser; struct Token { - StringRef Str; + const char *Data; + unsigned Length; }; struct PhysRegOp { @@ -1165,7 +1166,7 @@ public: StringRef getToken() const { assert(Kind == k_Token && "Invalid access!"); - return Tok.Str; + return StringRef(Tok.Data, Tok.Length); } bool isRegPair() const { return Kind == k_RegPair && RegIdx.Index <= 30; @@ -1219,7 +1220,8 @@ public: static std::unique_ptr<MipsOperand> CreateToken(StringRef Str, SMLoc S, MipsAsmParser &Parser) { auto Op = make_unique<MipsOperand>(k_Token, Parser); - Op->Tok.Str = Str; + Op->Tok.Data = Str.data(); + Op->Tok.Length = Str.size(); Op->StartLoc = S; Op->EndLoc = S; return Op; @@ -1435,7 +1437,7 @@ public: OS << "RegIdx<" << RegIdx.Index << ":" << RegIdx.Kind << ">"; break; case k_Token: - OS << Tok.Str; + OS << Tok.Data; break; case k_RegList: OS << "RegList< "; |

