diff options
author | Tim Northover <Tim.Northover@arm.com> | 2013-02-04 15:44:38 +0000 |
---|---|---|
committer | Tim Northover <Tim.Northover@arm.com> | 2013-02-04 15:44:38 +0000 |
commit | 42a68443a15d74ada014ad2c8a2349fe134a44f3 (patch) | |
tree | f1c6a8e4c5563370e3236b2ec5a80f3459e99863 | |
parent | a220aeb58f30a6b3fc991883e8107d5e1198c53b (diff) |
Fix some abuses of StringRef
We were taking a StringRef to a temporary result, which can go horribly wrong.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174328 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp index 34026344b0..49bec595e6 100644 --- a/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp +++ b/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp @@ -1207,8 +1207,8 @@ AArch64AsmParser::ParseRelocPrefix(AArch64MCExpr::VariantKind &RefKind) { return MatchOperand_ParseFail; } - StringRef lowerCase = Parser.getTok().getIdentifier().lower(); - RefKind = StringSwitch<AArch64MCExpr::VariantKind>(lowerCase) + std::string LowerCase = Parser.getTok().getIdentifier().lower(); + RefKind = StringSwitch<AArch64MCExpr::VariantKind>(LowerCase) .Case("got", AArch64MCExpr::VK_AARCH64_GOT) .Case("got_lo12", AArch64MCExpr::VK_AARCH64_GOT_LO12) .Case("lo12", AArch64MCExpr::VK_AARCH64_LO12) @@ -1343,7 +1343,8 @@ AArch64AsmParser::ParseCRxOperand( return MatchOperand_ParseFail; } - StringRef Tok = Parser.getTok().getIdentifier().lower(); + std::string LowerTok = Parser.getTok().getIdentifier().lower(); + StringRef Tok(LowerTok); if (Tok[0] != 'c') { Error(S, "Expected cN operand where 0 <= N <= 15"); return MatchOperand_ParseFail; |