diff options
Diffstat (limited to 'tools/clang-check/ClangCheck.cpp')
-rw-r--r-- | tools/clang-check/ClangCheck.cpp | 54 |
1 files changed, 24 insertions, 30 deletions
diff --git a/tools/clang-check/ClangCheck.cpp b/tools/clang-check/ClangCheck.cpp index 9e58077b5a..c02c23da89 100644 --- a/tools/clang-check/ClangCheck.cpp +++ b/tools/clang-check/ClangCheck.cpp @@ -1,4 +1,4 @@ -//===- tools/clang-check/ClangCheck.cpp - Clang check tool ----------------===// +//===--- tools/clang-check/ClangCheck.cpp - Clang check tool --------------===// // // The LLVM Compiler Infrastructure // @@ -16,20 +16,20 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Support/CommandLine.h" #include "clang/AST/ASTConsumer.h" #include "clang/Driver/OptTable.h" #include "clang/Driver/Options.h" #include "clang/Frontend/ASTConsumers.h" -#include "clang/Frontend/FrontendActions.h" -#include "clang/Tooling/CommandLineClangTool.h" +#include "clang/Tooling/CommonOptionsParser.h" #include "clang/Tooling/Tooling.h" +#include "llvm/Support/CommandLine.h" using namespace clang::driver; using namespace clang::tooling; using namespace llvm; -static const char *MoreHelpText = +static cl::extrahelp CommonHelp(CommonHelpMessage); +static cl::extrahelp MoreHelp( "\tFor example, to run clang-check on all files in a subtree of the\n" "\tsource tree, use:\n" "\n" @@ -41,26 +41,26 @@ static const char *MoreHelpText = "\n" "\tNote, that path/in/subtree and current directory should follow the\n" "\trules described above.\n" - "\n"; + "\n" +); + +static OwningPtr<OptTable> Options(createDriverOptTable()); +static cl::opt<bool> ASTDump( + "ast-dump", + cl::desc(Options->getOptionHelpText(options::OPT_ast_dump))); +static cl::opt<bool> ASTList( + "ast-list", + cl::desc(Options->getOptionHelpText(options::OPT_ast_list))); +static cl::opt<bool> ASTPrint( + "ast-print", + cl::desc(Options->getOptionHelpText(options::OPT_ast_print))); +static cl::opt<std::string> ASTDumpFilter( + "ast-dump-filter", + cl::desc(Options->getOptionHelpText(options::OPT_ast_dump_filter))); namespace { class ActionFactory { public: - ActionFactory() - : Options(createDriverOptTable()), - ASTDump( - "ast-dump", - cl::desc(Options->getOptionHelpText(options::OPT_ast_dump))), - ASTList( - "ast-list", - cl::desc(Options->getOptionHelpText(options::OPT_ast_list))), - ASTPrint( - "ast-print", - cl::desc(Options->getOptionHelpText(options::OPT_ast_print))), - ASTDumpFilter( - "ast-dump-filter", - cl::desc(Options->getOptionHelpText(options::OPT_ast_dump_filter))) {} - clang::ASTConsumer *newASTConsumer() { if (ASTList) return clang::CreateASTDeclNodeLister(); @@ -70,19 +70,13 @@ public: return clang::CreateASTPrinter(&llvm::outs(), ASTDumpFilter); return new clang::ASTConsumer(); } -private: - OwningPtr<OptTable> Options; - cl::opt<bool> ASTDump; - cl::opt<bool> ASTList; - cl::opt<bool> ASTPrint; - cl::opt<std::string> ASTDumpFilter; }; } int main(int argc, const char **argv) { ActionFactory Factory; - CommandLineClangTool Tool; - cl::extrahelp MoreHelp(MoreHelpText); - Tool.initialize(argc, argv); + CommonOptionsParser OptionsParser(argc, argv); + ClangTool Tool(OptionsParser.GetCompilations(), + OptionsParser.GetSourcePathList()); return Tool.run(newFrontendActionFactory(&Factory)); } |