[Windows] Separate elements in -print-search-dirs with semicolons
authorMartin Storsjo <martin@martin.st>
Thu, 25 Apr 2019 20:03:20 +0000 (20:03 +0000)
committerMartin Storsjo <martin@martin.st>
Thu, 25 Apr 2019 20:03:20 +0000 (20:03 +0000)
Path lists on windows should always be separated by semicolons, not
colons. Reuse llvm::sys::EnvPathSeparator for this purpose (as that's
also a path list that is separated in the same way).

Alternatively, this could just be a local ifdef _WIN32 in this function,
or generalizing the existing EnvPathSeparator to e.g. a
llvm::sys::path::PathListSeparator?

Differential Revision: https://reviews.llvm.org/D61121

llvm-svn: 359233

clang/lib/Driver/Driver.cpp

index 1e07e70cc457128bb73847af6c2b9d11f1b891b4..238315e8b93fd9177d6bb232665bcff901da0e8d 100644 (file)
@@ -1695,7 +1695,7 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
     bool separator = false;
     for (const std::string &Path : TC.getProgramPaths()) {
       if (separator)
-        llvm::outs() << ':';
+        llvm::outs() << llvm::sys::EnvPathSeparator;
       llvm::outs() << Path;
       separator = true;
     }
@@ -1706,7 +1706,7 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
 
     for (const std::string &Path : TC.getFilePaths()) {
       // Always print a separator. ResourceDir was the first item shown.
-      llvm::outs() << ':';
+      llvm::outs() << llvm::sys::EnvPathSeparator;
       // Interpretation of leading '=' is needed only for NetBSD.
       if (Path[0] == '=')
         llvm::outs() << sysroot << Path.substr(1);