diff options
author | Daniel Sanders <daniel.sanders@imgtec.com> | 2016-05-09 13:10:57 +0000 |
---|---|---|
committer | Daniel Sanders <daniel.sanders@imgtec.com> | 2016-05-09 13:10:57 +0000 |
commit | d044e49b375cadf4dc66b14393138a49d59f30e1 (patch) | |
tree | 6d44a3a711f2428b8d98c68bad3ecd33e93b68a9 | |
parent | 2edca417c1f62633301e29433a72f9d3537bf9ce (diff) | |
download | bcm5719-llvm-d044e49b375cadf4dc66b14393138a49d59f30e1.tar.gz bcm5719-llvm-d044e49b375cadf4dc66b14393138a49d59f30e1.zip |
[mips] Fix use after free and an unnecessary copy introduced in r268896.
llvm-svn: 268913
-rw-r--r-- | llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index 1b61535c75a..bff46886dc7 100644 --- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -1322,8 +1322,9 @@ public: return Op; } - static std::unique_ptr<MipsOperand> - CreateRegPair(MipsOperand MOP, SMLoc S, SMLoc E, MipsAsmParser &Parser) { + static std::unique_ptr<MipsOperand> CreateRegPair(const MipsOperand &MOP, + SMLoc S, SMLoc E, + MipsAsmParser &Parser) { auto Op = make_unique<MipsOperand>(k_RegPair, Parser); Op->RegIdx.Index = MOP.RegIdx.Index; Op->StartLoc = S; @@ -4691,7 +4692,7 @@ MipsAsmParser::parseRegisterPair(OperandVector &Operands) { return MatchOperand_ParseFail; SMLoc E = Parser.getTok().getLoc(); - MipsOperand &Op = static_cast<MipsOperand &>(*Operands.back()); + MipsOperand Op = static_cast<MipsOperand &>(*Operands.back()); Operands.pop_back(); Operands.push_back(MipsOperand::CreateRegPair(Op, S, E, *this)); |