diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp --- a/clang/tools/driver/driver.cpp +++ b/clang/tools/driver/driver.cpp @@ -385,10 +385,22 @@ bool MarkEOLs = ClangCLMode; llvm::cl::TokenizerCallback Tokenizer; - if (RSPQuoting == Windows || (RSPQuoting == Default && ClangCLMode)) + switch (RSPQuoting) { + case Default: { + if (ClangCLMode || + llvm::Triple(llvm::sys::getProcessTriple()).isOSWindows()) + Tokenizer = &llvm::cl::TokenizeWindowsCommandLine; + else + Tokenizer = &llvm::cl::TokenizeGNUCommandLine; + break; + } + case Windows: Tokenizer = &llvm::cl::TokenizeWindowsCommandLine; - else + break; + case POSIX: Tokenizer = &llvm::cl::TokenizeGNUCommandLine; + break; + } if (MarkEOLs && argv.size() > 1 && StringRef(argv[1]).startswith("-cc1")) MarkEOLs = false;