diff options
author | Alexander Kornienko <alexfh@google.com> | 2014-06-02 20:32:06 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2014-06-02 20:32:06 +0000 |
commit | fbf9258582eaa39ed92a3acdfaae232dbb1f8ff5 (patch) | |
tree | c29c51ee5cd7424a4bcd438620e87c48705e0c36 | |
parent | 5ce26687f2931e3961746f95704f19f2813cb1de (diff) | |
download | llvm-fbf9258582eaa39ed92a3acdfaae232dbb1f8ff5.zip llvm-fbf9258582eaa39ed92a3acdfaae232dbb1f8ff5.tar.gz llvm-fbf9258582eaa39ed92a3acdfaae232dbb1f8ff5.tar.bz2 |
Exit with error when no checks enabled.
Summary:
This seems like a more appropriate reaction to the user specifying a
single check with a wrong name, for example.
Reviewers: klimek
Reviewed By: klimek
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D3981
llvm-svn: 210043
-rw-r--r-- | clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp | 10 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-tidy/diagnostic.cpp | 2 | ||||
-rw-r--r-- | clang-tools-extra/test/clang-tidy/select-checks.cpp | 3 |
3 files changed, 13 insertions, 2 deletions
diff --git a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp index 41b66d6..f338805 100644 --- a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp +++ b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp @@ -119,15 +119,23 @@ int main(int argc, const char **argv) { return 1; } + std::vector<std::string> EnabledChecks = clang::tidy::getCheckNames(Options); + // FIXME: Allow using --list-checks without positional arguments. if (ListChecks) { llvm::outs() << "Enabled checks:"; - for (auto CheckName : clang::tidy::getCheckNames(Options)) + for (auto CheckName : EnabledChecks) llvm::outs() << "\n " << CheckName; llvm::outs() << "\n\n"; return 0; } + if (EnabledChecks.empty()) { + llvm::errs() << "Error: no checks enabled.\n"; + llvm::cl::PrintHelpMessage(/*Hidden=*/false, /*Categorized=*/true); + return 1; + } + std::vector<clang::tidy::ClangTidyError> Errors; clang::tidy::ClangTidyStats Stats = clang::tidy::runClangTidy(Options, OptionsParser.getCompilations(), diff --git a/clang-tools-extra/test/clang-tidy/diagnostic.cpp b/clang-tools-extra/test/clang-tidy/diagnostic.cpp index b012e08..c10e493 100644 --- a/clang-tools-extra/test/clang-tidy/diagnostic.cpp +++ b/clang-tools-extra/test/clang-tidy/diagnostic.cpp @@ -1,7 +1,7 @@ // RUN: clang-tidy %s.nonexistent.cpp -- | FileCheck -check-prefix=CHECK1 %s // RUN: clang-tidy -checks='google-explicit-constructor' %s -- -fan-unknown-option | FileCheck -check-prefix=CHECK2 %s // RUN: clang-tidy -checks='-*,google-explicit-constructor,clang-diagnostic-literal-conversion' %s -- -fan-unknown-option | FileCheck -check-prefix=CHECK3 %s -// RUN: clang-tidy -checks='-*,clang-diagnostic-macro-redefined' %s -- -DMACRO_FROM_COMMAND_LINE | FileCheck -check-prefix=CHECK4 %s +// RUN: clang-tidy -checks='-*,misc-use-override,clang-diagnostic-macro-redefined' %s -- -DMACRO_FROM_COMMAND_LINE | FileCheck -check-prefix=CHECK4 %s // CHECK1-NOT: warning // CHECK2-NOT: warning diff --git a/clang-tools-extra/test/clang-tidy/select-checks.cpp b/clang-tools-extra/test/clang-tidy/select-checks.cpp index 09860a3..ce3d4f1 100644 --- a/clang-tools-extra/test/clang-tidy/select-checks.cpp +++ b/clang-tools-extra/test/clang-tidy/select-checks.cpp @@ -1,6 +1,9 @@ // RUN: grep -Ev "// *[A-Z-]+:" %s > %t.cpp // RUN: clang-tidy %t.cpp -fix -checks='-*,llvm-*' -- // RUN: FileCheck -input-file=%t.cpp %s +// RUN: clang-tidy %s -checks='-*,an-unknown-check' -- 2>&1 | FileCheck -check-prefix=CHECK2 %s + +// CHECK2: Error: no checks enabled. namespace i { } |