summaryrefslogtreecommitdiff
path: root/tools/clang-check/ClangCheck.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/clang-check/ClangCheck.cpp')
-rw-r--r--tools/clang-check/ClangCheck.cpp78
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());
}