aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/AArch64/AsmParser
diff options
context:
space:
mode:
authorTim Northover <Tim.Northover@arm.com>2013-02-04 15:44:38 +0000
committerTim Northover <Tim.Northover@arm.com>2013-02-04 15:44:38 +0000
commit42a68443a15d74ada014ad2c8a2349fe134a44f3 (patch)
treef1c6a8e4c5563370e3236b2ec5a80f3459e99863 /lib/Target/AArch64/AsmParser
parenta220aeb58f30a6b3fc991883e8107d5e1198c53b (diff)
downloadexternal_llvm-42a68443a15d74ada014ad2c8a2349fe134a44f3.zip
external_llvm-42a68443a15d74ada014ad2c8a2349fe134a44f3.tar.gz
external_llvm-42a68443a15d74ada014ad2c8a2349fe134a44f3.tar.bz2
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
Diffstat (limited to 'lib/Target/AArch64/AsmParser')
-rw-r--r--lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
index 3402634..49bec59 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;