summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2014-05-07 09:06:53 +0000
committerAlexander Kornienko <alexfh@google.com>2014-05-07 09:06:53 +0000
commit5d174547a9788ecb15ba33abbb4ef2e1abee0ba3 (patch)
tree7fff45b93f822d5e5307c33ed14c5792dd737a2f /clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
parentd103130ee0a7c0390639cca7273c77b800d98710 (diff)
downloadbcm5719-llvm-5d174547a9788ecb15ba33abbb4ef2e1abee0ba3.tar.gz
bcm5719-llvm-5d174547a9788ecb15ba33abbb4ef2e1abee0ba3.zip
Print stats on displayed and ignored warnings.
Summary: Also displays a hint to use -header-filter='.*' in case any warnings are in non-user code. This will help discoverability of this option. Reviewers: klimek Reviewed By: klimek Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D3621 llvm-svn: 208174
Diffstat (limited to 'clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
index 17d1c786079..624e6c05f9b 100644
--- a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
+++ b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
@@ -59,6 +59,31 @@ static cl::opt<bool> AnalyzeTemporaryDtors(
cl::init(false),
cl::cat(ClangTidyCategory));
+static void printStats(const clang::tidy::ClangTidyStats &Stats) {
+ unsigned ErrorsIgnored = Stats.ErrorsIgnoredNOLINT +
+ Stats.ErrorsIgnoredCheckFilter +
+ Stats.ErrorsIgnoredNonUserCode;
+ if (ErrorsIgnored) {
+ llvm::errs() << "Suppressed " << ErrorsIgnored << " warnings (";
+ StringRef Separator = "";
+ if (Stats.ErrorsIgnoredNonUserCode) {
+ llvm::errs() << Stats.ErrorsIgnoredNonUserCode << " in non-user code";
+ Separator = ", ";
+ }
+ if (Stats.ErrorsIgnoredNOLINT) {
+ llvm::errs() << Separator << Stats.ErrorsIgnoredNOLINT << " NOLINT";
+ Separator = ", ";
+ }
+ if (Stats.ErrorsIgnoredCheckFilter)
+ llvm::errs() << Separator << Stats.ErrorsIgnoredCheckFilter
+ << " with check filters";
+ llvm::errs() << ").\n";
+ if (Stats.ErrorsIgnoredNonUserCode)
+ llvm::errs() << "Use -header-filter='.*' to display errors from all "
+ "non-system headers.\n";
+ }
+}
+
int main(int argc, const char **argv) {
CommonOptionsParser OptionsParser(argc, argv, ClangTidyCategory);
@@ -78,10 +103,12 @@ int main(int argc, const char **argv) {
}
SmallVector<clang::tidy::ClangTidyError, 16> Errors;
- clang::tidy::runClangTidy(Options, OptionsParser.getCompilations(),
- OptionsParser.getSourcePathList(), &Errors);
+ clang::tidy::ClangTidyStats Stats =
+ clang::tidy::runClangTidy(Options, OptionsParser.getCompilations(),
+ OptionsParser.getSourcePathList(), &Errors);
clang::tidy::handleErrors(Errors, Fix);
+ printStats(Stats);
return 0;
}
OpenPOWER on IntegriCloud