r248479 - [ARM] Follow-up to fix crash "-target arm -mcpu=generic", without "-march="

Vladimir Sukharev via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 24 02:55:08 PDT 2015


Author: vsukharev
Date: Thu Sep 24 04:55:08 2015
New Revision: 248479

URL: http://llvm.org/viewvc/llvm-project?rev=248479&view=rev
Log:
[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


Modified:
    cfe/trunk/lib/Driver/Tools.cpp

Modified: cfe/trunk/lib/Driver/Tools.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=248479&r1=248478&r2=248479&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Tools.cpp (original)
+++ cfe/trunk/lib/Driver/Tools.cpp Thu Sep 24 04:55:08 2015
@@ -6164,13 +6164,13 @@ std::string arm::getARMTargetCPU(StringR
 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);
   }




More information about the cfe-commits mailing list