From 14dec3f3c53452cd32e65f38b6f241a9ed4584c9 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Wed, 24 Apr 2019 09:06:03 +0000 Subject: [PATCH] Fix unquoted spaces in args in clang --verbose output The behaviour of not quoting spaces appears to have been introduced by mistake in r190620. Patch by Brad Moody! Differential revision: https://reviews.llvm.org/D60997 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@359077 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Driver/Job.cpp | 2 +- test/Driver/verbose-output-quoting.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 test/Driver/verbose-output-quoting.c diff --git a/lib/Driver/Job.cpp b/lib/Driver/Job.cpp index d2aeda640f..0a95e49694 100644 --- a/lib/Driver/Job.cpp +++ b/lib/Driver/Job.cpp @@ -99,7 +99,7 @@ static bool skipArgs(const char *Flag, bool HaveCrashVFS, int &SkipNum, } void Command::printArg(raw_ostream &OS, StringRef Arg, bool Quote) { - const bool Escape = Arg.find_first_of("\"\\$") != StringRef::npos; + const bool Escape = Arg.find_first_of(" \"\\$") != StringRef::npos; if (!Quote && !Escape) { OS << Arg; diff --git a/test/Driver/verbose-output-quoting.c b/test/Driver/verbose-output-quoting.c new file mode 100644 index 0000000000..571a682040 --- /dev/null +++ b/test/Driver/verbose-output-quoting.c @@ -0,0 +1,9 @@ +// RUN: %clang --verbose -DSPACE="a b" -c %s 2>&1 | FileCheck -check-prefix=SPACE -strict-whitespace %s +// RUN: %clang --verbose -DQUOTES=\"\" -c %s 2>&1 | FileCheck -check-prefix=QUOTES -strict-whitespace %s +// RUN: %clang --verbose -DBACKSLASH=\\ -c %s 2>&1 | FileCheck -check-prefix=BACKSLASH -strict-whitespace %s +// RUN: %clang --verbose -DDOLLAR=\$ -c %s 2>&1 | FileCheck -check-prefix=DOLLAR -strict-whitespace %s + +// SPACE: -cc1 {{.*}} -D "SPACE=a b" +// QUOTES: -cc1 {{.*}} -D "QUOTES=\"\"" +// BACKSLASH: -cc1 {{.*}} -D "BACKSLASH=\\" +// DOLLAR: -cc1 {{.*}} -D "DOLLAR=\$" -- 2.50.1