Index: cfe/trunk/tools/driver/driver.cpp =================================================================== --- cfe/trunk/tools/driver/driver.cpp +++ cfe/trunk/tools/driver/driver.cpp @@ -37,6 +37,7 @@ #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Path.h" #include "llvm/Support/PrettyStackTrace.h" +#include "llvm/Support/Process.h" #include "llvm/Support/Program.h" #include "llvm/Support/Regex.h" #include "llvm/Support/Signals.h" @@ -292,8 +293,16 @@ llvm::sys::PrintStackTraceOnErrorSignal(); llvm::PrettyStackTraceProgram X(argc_, argv_); + SmallVector argv; + llvm::SpecificBumpPtrAllocator ArgAllocator; + llvm::error_code EC = llvm::sys::Process::GetArgumentVector( + argv, llvm::ArrayRef(argv_, argc_), ArgAllocator); + if (EC) { + llvm::errs() << "error: couldn't get arguments: " << EC.message() << '\n'; + return 1; + } + std::set SavedStrings; - SmallVector argv(argv_, argv_ + argc_); StringSetSaver Saver(SavedStrings); llvm::cl::ExpandResponseFiles(Saver, llvm::cl::TokenizeGNUCommandLine, argv);