]> granicus.if.org Git - clang/commitdiff
Avoid self-assignment of SmallString, trigger UB behavior down the road.
authorJoerg Sonnenberger <joerg@bec.de>
Fri, 15 Jan 2016 22:29:34 +0000 (22:29 +0000)
committerJoerg Sonnenberger <joerg@bec.de>
Fri, 15 Jan 2016 22:29:34 +0000 (22:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@257947 91177308-0d34-0410-b5e6-96231b3b80d8

tools/driver/driver.cpp

index ea218d5403d8323f53bb86143ac4896f3e10bbd0..de14425d36162d8dd3a730ff0f00f41cf77eb0a8 100644 (file)
@@ -290,9 +290,9 @@ static void SetInstallDir(SmallVectorImpl<const char *> &argv,
   if (CanonicalPrefixes)
     llvm::sys::fs::make_absolute(InstalledPath);
 
-  InstalledPath = llvm::sys::path::parent_path(InstalledPath);
-  if (llvm::sys::fs::exists(InstalledPath.c_str()))
-    TheDriver.setInstalledDir(InstalledPath);
+  StringRef InstalledPathParent(llvm::sys::path::parent_path(InstalledPath));
+  if (llvm::sys::fs::exists(InstalledPathParent))
+    TheDriver.setInstalledDir(InstalledPathParent);
 }
 
 static int ExecuteCC1Tool(ArrayRef<const char *> argv, StringRef Tool) {