diff options
Diffstat (limited to 'tools/clang-check/ClangCheck.cpp')
-rw-r--r-- | tools/clang-check/ClangCheck.cpp | 78 |
1 files changed, 42 insertions, 36 deletions
diff --git a/tools/clang-check/ClangCheck.cpp b/tools/clang-check/ClangCheck.cpp index 701db52334c6..cc8d43cec221 100644 --- a/tools/clang-check/ClangCheck.cpp +++ b/tools/clang-check/ClangCheck.cpp @@ -20,20 +20,18 @@ #include "clang/Driver/Options.h" #include "clang/Frontend/ASTConsumers.h" #include "clang/Frontend/CompilerInstance.h" -#include "clang/StaticAnalyzer/Frontend/FrontendActions.h" #include "clang/Rewrite/Frontend/FixItRewriter.h" #include "clang/Rewrite/Frontend/FrontendActions.h" +#include "clang/StaticAnalyzer/Frontend/FrontendActions.h" #include "clang/Tooling/CommonOptionsParser.h" #include "clang/Tooling/Tooling.h" -#include "llvm/Support/CommandLine.h" +#include "llvm/Option/OptTable.h" #include "llvm/Support/Path.h" #include "llvm/Support/Signals.h" -#include "llvm/Option/OptTable.h" using namespace clang::driver; using namespace clang::tooling; using namespace llvm; -using namespace llvm::opt; static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage); static cl::extrahelp MoreHelp( @@ -51,34 +49,42 @@ static cl::extrahelp MoreHelp( "\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::OptionCategory ClangCheckCategory("clang-check options"); +static std::unique_ptr<opt::OptTable> Options(createDriverOptTable()); +static cl::opt<bool> +ASTDump("ast-dump", cl::desc(Options->getOptionHelpText(options::OPT_ast_dump)), + cl::cat(ClangCheckCategory)); +static cl::opt<bool> +ASTList("ast-list", cl::desc(Options->getOptionHelpText(options::OPT_ast_list)), + cl::cat(ClangCheckCategory)); +static cl::opt<bool> +ASTPrint("ast-print", + cl::desc(Options->getOptionHelpText(options::OPT_ast_print)), + cl::cat(ClangCheckCategory)); static cl::opt<std::string> ASTDumpFilter( "ast-dump-filter", - cl::desc(Options->getOptionHelpText(options::OPT_ast_dump_filter))); -static cl::opt<bool> Analyze( - "analyze", - cl::desc(Options->getOptionHelpText(options::OPT_analyze))); - -static cl::opt<bool> Fixit( - "fixit", - cl::desc(Options->getOptionHelpText(options::OPT_fixit))); + cl::desc(Options->getOptionHelpText(options::OPT_ast_dump_filter)), + cl::cat(ClangCheckCategory)); +static cl::opt<bool> +Analyze("analyze", cl::desc(Options->getOptionHelpText(options::OPT_analyze)), + cl::cat(ClangCheckCategory)); + +static cl::opt<bool> +Fixit("fixit", cl::desc(Options->getOptionHelpText(options::OPT_fixit)), + cl::cat(ClangCheckCategory)); static cl::opt<bool> FixWhatYouCan( "fix-what-you-can", - cl::desc(Options->getOptionHelpText(options::OPT_fix_what_you_can))); - -static cl::list<std::string> ArgsAfter("extra-arg", - cl::desc("Additional argument to append to the compiler command line")); -static cl::list<std::string> ArgsBefore("extra-arg-before", - cl::desc("Additional argument to prepend to the compiler command line")); + cl::desc(Options->getOptionHelpText(options::OPT_fix_what_you_can)), + cl::cat(ClangCheckCategory)); + +static cl::list<std::string> ArgsAfter( + "extra-arg", + cl::desc("Additional argument to append to the compiler command line"), + cl::cat(ClangCheckCategory)); +static cl::list<std::string> ArgsBefore( + "extra-arg-before", + cl::desc("Additional argument to prepend to the compiler command line"), + cl::cat(ClangCheckCategory)); namespace { @@ -90,7 +96,7 @@ public: FixWhatYouCan = ::FixWhatYouCan; } - std::string RewriteFilename(const std::string& filename, int &fd) { + std::string RewriteFilename(const std::string& filename, int &fd) override { assert(llvm::sys::path::is_absolute(filename) && "clang-fixit expects absolute paths only."); @@ -117,15 +123,15 @@ public: : clang::FixItRewriter(Diags, SourceMgr, LangOpts, FixItOpts) { } - virtual bool IncludeInDiagnosticCounts() const { return false; } + bool IncludeInDiagnosticCounts() const override { return false; } }; /// \brief Subclasses \c clang::FixItAction so that we can install the custom /// \c FixItRewriter. class FixItAction : public clang::FixItAction { public: - virtual bool BeginSourceFileAction(clang::CompilerInstance& CI, - StringRef Filename) { + bool BeginSourceFileAction(clang::CompilerInstance& CI, + StringRef Filename) override { FixItOpts.reset(new FixItOptions); Rewriter.reset(new FixItRewriter(CI.getDiagnostics(), CI.getSourceManager(), CI.getLangOpts(), FixItOpts.get())); @@ -146,7 +152,7 @@ public: } virtual CommandLineArguments - Adjust(const CommandLineArguments &Args) LLVM_OVERRIDE { + Adjust(const CommandLineArguments &Args) override { CommandLineArguments Return(Args); CommandLineArguments::iterator I; @@ -187,7 +193,7 @@ public: int main(int argc, const char **argv) { llvm::sys::PrintStackTraceOnErrorSignal(); - CommonOptionsParser OptionsParser(argc, argv); + CommonOptionsParser OptionsParser(argc, argv, ClangCheckCategory); ClangTool Tool(OptionsParser.getCompilations(), OptionsParser.getSourcePathList()); @@ -209,7 +215,7 @@ int main(int argc, const char **argv) { Analyze ? "--analyze" : "-fsyntax-only", InsertAdjuster::BEGIN)); clang_check::ClangCheckActionFactory CheckFactory; - FrontendActionFactory *FrontendFactory; + std::unique_ptr<FrontendActionFactory> FrontendFactory; // Choose the correct factory based on the selected mode. if (Analyze) @@ -219,5 +225,5 @@ int main(int argc, const char **argv) { else FrontendFactory = newFrontendActionFactory(&CheckFactory); - return Tool.run(FrontendFactory); + return Tool.run(FrontendFactory.get()); } |