[clang-tidy] Add -quiet option to suppress extra output
Summary:
This new flag instructs clang-tidy to not output anything
except for errors and warnings. This makes it easier to
script clang-tidy to run as part of external build systems.
Reviewers: bkramer, alexfh, klimek
Subscribers: JDevlieghere, cfe-commits
Differential Revision: https://reviews.llvm.org/D29661
llvm-svn: 294607
diff --git a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
index a0dd41c..b6684d0 100644
--- a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
+++ b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
@@ -188,6 +188,15 @@
cl::value_desc("filename"),
cl::cat(ClangTidyCategory));
+static cl::opt<bool> Quiet("quiet", cl::desc(R"(
+Run clang-tidy in quiet mode. This suppresses
+printing statistics about ignored warnings and
+warnings treated as errors if the respective
+options are specified.
+)"),
+ cl::init(false),
+ cl::cat(ClangTidyCategory));
+
namespace clang {
namespace tidy {
@@ -406,19 +415,23 @@
exportReplacements(FilePath.str(), Errors, OS);
}
- printStats(Stats);
- if (DisableFixes)
- llvm::errs()
- << "Found compiler errors, but -fix-errors was not specified.\n"
- "Fixes have NOT been applied.\n\n";
+ if (!Quiet) {
+ printStats(Stats);
+ if (DisableFixes)
+ llvm::errs()
+ << "Found compiler errors, but -fix-errors was not specified.\n"
+ "Fixes have NOT been applied.\n\n";
+ }
if (EnableCheckProfile)
printProfileData(Profile, llvm::errs());
if (WErrorCount) {
- StringRef Plural = WErrorCount == 1 ? "" : "s";
- llvm::errs() << WErrorCount << " warning" << Plural << " treated as error"
- << Plural << "\n";
+ if (!Quiet) {
+ StringRef Plural = WErrorCount == 1 ? "" : "s";
+ llvm::errs() << WErrorCount << " warning" << Plural << " treated as error"
+ << Plural << "\n";
+ }
return WErrorCount;
}