summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
index a71df0c717a..5f1c13736b5 100644
--- a/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
+++ b/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
@@ -17,7 +17,6 @@
#include "../ClangTidy.h"
#include "clang/Tooling/CommonOptionsParser.h"
-#include <vector>
using namespace clang::ast_matchers;
using namespace clang::driver;
@@ -32,16 +31,34 @@ static cl::opt<std::string> Checks(
"checks",
cl::desc("Regular expression matching the names of the checks to be run."),
cl::init(".*"), cl::cat(ClangTidyCategory));
+static cl::opt<std::string> DisableChecks(
+ "disable-checks",
+ cl::desc("Regular expression matching the names of the checks to disable."),
+ cl::init("clang-analyzer-alpha.*"), cl::cat(ClangTidyCategory));
static cl::opt<bool> Fix("fix", cl::desc("Fix detected errors if possible."),
cl::init(false), cl::cat(ClangTidyCategory));
-// FIXME: Add option to list name/description of all checks.
+static cl::opt<bool> ListChecks("list-checks",
+ cl::desc("List all enabled checks and exit."),
+ cl::init(false), cl::cat(ClangTidyCategory));
int main(int argc, const char **argv) {
CommonOptionsParser OptionsParser(argc, argv, ClangTidyCategory);
+ // FIXME: Allow using --list-checks without positional arguments.
+ if (ListChecks) {
+ std::vector<std::string> CheckNames =
+ clang::tidy::getCheckNames(Checks, DisableChecks);
+ llvm::outs() << "Enabled checks:";
+ for (unsigned i = 0; i < CheckNames.size(); ++i)
+ llvm::outs() << "\n " << CheckNames[i];
+ llvm::outs() << "\n\n";
+ return 0;
+ }
+
SmallVector<clang::tidy::ClangTidyError, 16> Errors;
- clang::tidy::runClangTidy(Checks, OptionsParser.getCompilations(),
+ clang::tidy::runClangTidy(Checks, DisableChecks,
+ OptionsParser.getCompilations(),
OptionsParser.getSourcePathList(), &Errors);
clang::tidy::handleErrors(Errors, Fix);
OpenPOWER on IntegriCloud