[MinGW] Try to fix asan testing after r330244
authorMartin Storsjo <martin@martin.st>
Wed, 18 Apr 2018 17:34:29 +0000 (17:34 +0000)
committerMartin Storsjo <martin@martin.st>
Wed, 18 Apr 2018 17:34:29 +0000 (17:34 +0000)
Twines shouldn't be stored as they can refer to temporaries.

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

lib/Driver/ToolChains/MinGW.cpp

index 312acde3bc1e7750130498542866ae0f40afbe3d..206f52e82d0b31392b1b0d2525aed946ded473a2 100644 (file)
@@ -308,14 +308,13 @@ llvm::ErrorOr<std::string> toolchains::MinGW::findClangRelativeSysroot() {
   Subdirs.emplace_back(getTriple().str());
   Subdirs.emplace_back(getTriple().getArchName());
   Subdirs[1] += "-w64-mingw32";
-  Twine ClangRoot =
-      llvm::sys::path::parent_path(getDriver().getInstalledDir()) +
-      llvm::sys::path::get_separator();
+  StringRef ClangRoot =
+      llvm::sys::path::parent_path(getDriver().getInstalledDir());
+  StringRef Sep = llvm::sys::path::get_separator();
   for (StringRef CandidateSubdir : Subdirs) {
-    Twine Subdir = ClangRoot + CandidateSubdir;
-    if (llvm::sys::fs::is_directory(Subdir)) {
+    if (llvm::sys::fs::is_directory(ClangRoot + Sep + CandidateSubdir)) {
       Arch = CandidateSubdir;
-      return Subdir.str();
+      return (ClangRoot + Sep + CandidateSubdir).str();
     }
   }
   return make_error_code(std::errc::no_such_file_or_directory);