diff --git a/llvm/lib/Support/PrettyStackTrace.cpp b/llvm/lib/Support/PrettyStackTrace.cpp --- a/llvm/lib/Support/PrettyStackTrace.cpp +++ b/llvm/lib/Support/PrettyStackTrace.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #ifdef HAVE_CRASHREPORTERCLIENT_H @@ -253,8 +254,16 @@ void PrettyStackTraceProgram::print(raw_ostream &OS) const { OS << "Program arguments: "; // Print the argument list. - for (unsigned i = 0, e = ArgC; i != e; ++i) - OS << ArgV[i] << ' '; + for (int I = 0; I < ArgC; ++I) { + const bool HaveSpace = ::strchr(ArgV[I], ' '); + if (I) + OS << ' '; + if (HaveSpace) + OS << '"'; + OS.write_escaped(ArgV[I]); + if (HaveSpace) + OS << '"'; + } OS << '\n'; }