From: Vladimir Sukharev Date: Thu, 24 Sep 2015 09:55:08 +0000 (+0000) Subject: [ARM] Follow-up to fix crash "-target arm -mcpu=generic", without "-march=" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0aace7a99c2fd980d971b736b09f913fe84081d7;p=clang [ARM] Follow-up to fix crash "-target arm -mcpu=generic", without "-march=" Fix of dangling StringRef after temporary std::string is destroyed Follow-up to: http://reviews.llvm.org/rL248370 Reviewers: alexfh Subscribers: cfe-commits git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@248479 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index e8a0852cb8..4061598746 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -6164,13 +6164,13 @@ std::string arm::getARMTargetCPU(StringRef CPU, StringRef Arch, StringRef arm::getLLVMArchSuffixForARM(StringRef CPU, StringRef Arch, const llvm::Triple &Triple) { unsigned ArchKind; - Arch = tools::arm::getARMArch(Arch, Triple); if (CPU == "generic") { - ArchKind = llvm::ARM::parseArch(Arch); + StringRef ARMArch = tools::arm::getARMArch(Arch, Triple); + ArchKind = llvm::ARM::parseArch(ARMArch); if (ArchKind == llvm::ARM::AK_INVALID) // In case of generic Arch, i.e. "arm", // extract arch from default cpu of the Triple - ArchKind = llvm::ARM::parseCPUArch(Triple.getARMCPUForArch(Arch)); + ArchKind = llvm::ARM::parseCPUArch(Triple.getARMCPUForArch(ARMArch)); } else { ArchKind = llvm::ARM::parseCPUArch(CPU); }