From: Alexander Kornienko Date: Wed, 5 Jun 2013 11:33:11 +0000 (+0000) Subject: Make clang tools ignore -fcolor-diagnostics and -fdiagnostics-color retrieved from... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e7b04868ea410c846e4c63c80e32538bbc693264;p=clang Make clang tools ignore -fcolor-diagnostics and -fdiagnostics-color retrieved from the compilation database. Summary: Clang tools' diagnostic output could be force colored when a command line from the compilation database contains -fcolor-diagnostics or -fdiagnostics-color. This is not what we want e.g. for vim integration. Reviewers: klimek Reviewed By: klimek CC: cfe-commits, revane, jordan_rose Differential Revision: http://llvm-reviews.chandlerc.com/D917 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183304 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Tooling/ArgumentsAdjusters.cpp b/lib/Tooling/ArgumentsAdjusters.cpp index 31dd465995..c44b20dd5a 100644 --- a/lib/Tooling/ArgumentsAdjusters.cpp +++ b/lib/Tooling/ArgumentsAdjusters.cpp @@ -13,6 +13,8 @@ //===----------------------------------------------------------------------===// #include "clang/Tooling/ArgumentsAdjusters.h" +#include "clang/Basic/LLVM.h" +#include "llvm/ADT/StringRef.h" namespace clang { namespace tooling { @@ -23,8 +25,14 @@ void ArgumentsAdjuster::anchor() { /// Add -fsyntax-only option to the commnand line arguments. CommandLineArguments ClangSyntaxOnlyAdjuster::Adjust(const CommandLineArguments &Args) { - CommandLineArguments AdjustedArgs = Args; - // FIXME: Remove options that generate output. + CommandLineArguments AdjustedArgs; + for (size_t i = 0, e = Args.size(); i != e; ++i) { + StringRef Arg = Args[i]; + // FIXME: Remove options that generate output. + if (!Arg.startswith("-fcolor-diagnostics") && + !Arg.startswith("-fdiagnostics-color")) + AdjustedArgs.push_back(Args[i]); + } AdjustedArgs.push_back("-fsyntax-only"); return AdjustedArgs; }