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 | 24937c12ebbc4d1128618d0f0ff7b1e638a5471d (patch) | |
| tree | da74efe1f3fd69739b0606bc61c1d495e75e02d5 | |
| parent | 2c9da989c20aacc523b8751ca45a11f4f24f8d54 (diff) | |
| download | bcm5719-llvm-24937c12ebbc4d1128618d0f0ff7b1e638a5471d.tar.gz bcm5719-llvm-24937c12ebbc4d1128618d0f0ff7b1e638a5471d.zip | |
Fix some abuses of StringRef
We were taking a StringRef to a temporary result, which can go horribly wrong.
llvm-svn: 174328
| -rw-r--r-- | llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp index 34026344b09..49bec595e61 100644 --- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp +++ b/llvm/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; |

