diff options
| -rw-r--r-- | clang/lib/Driver/Compilation.cpp | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Driver/Compilation.cpp b/clang/lib/Driver/Compilation.cpp index 85a5fc93304..7a62fa4b55f 100644 --- a/clang/lib/Driver/Compilation.cpp +++ b/clang/lib/Driver/Compilation.cpp @@ -70,6 +70,13 @@ const DerivedArgList &Compilation::getArgsForToolChain(const ToolChain *TC,    return *Entry;  } +static bool needsQuote(const char *s) { +  for (const char *c = s; *c; ++c) +    if (*c == ' ') +      return true; +  return false; +} +  void Compilation::PrintJob(raw_ostream &OS, const Job &J,                             const char *Terminator, bool Quote) const {    if (const Command *C = dyn_cast<Command>(&J)) { @@ -77,7 +84,7 @@ void Compilation::PrintJob(raw_ostream &OS, const Job &J,      for (ArgStringList::const_iterator it = C->getArguments().begin(),             ie = C->getArguments().end(); it != ie; ++it) {        OS << ' '; -      if (!Quote) { +      if (!Quote && !needsQuote(*it)) {          OS << *it;          continue;        }  | 

