]> granicus.if.org Git - clang/commitdiff
Merging r257947:
authorHans Wennborg <hans@hanshq.net>
Mon, 25 Jan 2016 20:35:13 +0000 (20:35 +0000)
committerHans Wennborg <hans@hanshq.net>
Mon, 25 Jan 2016 20:35:13 +0000 (20:35 +0000)
------------------------------------------------------------------------
r257947 | joerg | 2016-01-15 14:29:34 -0800 (Fri, 15 Jan 2016) | 2 lines

Avoid self-assignment of SmallString, trigger UB behavior down the road.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_38@258715 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) {