]> granicus.if.org Git - clang/commitdiff
[Driver] Fix use after free in Hexagon toolchain code.
authorBenjamin Kramer <benny.kra@googlemail.com>
Wed, 18 Oct 2017 21:43:42 +0000 (21:43 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Wed, 18 Oct 2017 21:43:42 +0000 (21:43 +0000)
No functionality change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316127 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains/Hexagon.cpp

index ea100fbccedd371b9b72621a1cb6a9c291594571..d4ab5dc5b7421fc9e8c83c81a169933c8ee4e6f4 100644 (file)
@@ -28,8 +28,8 @@ using namespace clang;
 using namespace llvm::opt;
 
 // Default hvx-length for various versions.
-static std::string getDefaultHvxLength(const StringRef &Cpu) {
-  return llvm::StringSwitch<std::string>(Cpu)
+static StringRef getDefaultHvxLength(StringRef Cpu) {
+  return llvm::StringSwitch<StringRef>(Cpu)
       .Case("v60", "64b")
       .Case("v62", "64b")
       .Default("128b");
@@ -93,7 +93,7 @@ static void handleHVXTargetFeatures(const Driver &D, const ArgList &Args,
   }
   // Default hvx-length based on Cpu.
   else if (HasHVX)
-    HVXLength = StringRef(getDefaultHvxLength(Cpu));
+    HVXLength = getDefaultHvxLength(Cpu);
 
   if (!HVXLength.empty()) {
     HVXFeature =