diff options
| author | Alexander Kornienko <alexfh@google.com> | 2014-05-07 09:06:53 +0000 |
|---|---|---|
| committer | Alexander Kornienko <alexfh@google.com> | 2014-05-07 09:06:53 +0000 |
| commit | 5d174547a9788ecb15ba33abbb4ef2e1abee0ba3 (patch) | |
| tree | 7fff45b93f822d5e5307c33ed14c5792dd737a2f /clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp | |
| parent | d103130ee0a7c0390639cca7273c77b800d98710 (diff) | |
| download | bcm5719-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.cpp | 31 |
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; } |

