aboutsummaryrefslogtreecommitdiff
path: root/tools/clang-check
diff options
context:
space:
mode:
authorStephen Hines <srhines@google.com>2014-12-01 14:53:08 -0800
committerStephen Hines <srhines@google.com>2014-12-01 14:53:08 -0800
commit176edba5311f6eff0cad2631449885ddf4fbc9ea (patch)
treef45baf023a7673970fc373bcdd0de5dc919905a1 /tools/clang-check
parent8b939a0498b8d24f4a5d7c6e6ac94ddba75ee933 (diff)
downloadclang-176edba5311f6eff0cad2631449885ddf4fbc9ea.tar.gz
Update aosp/master Clang for rebase to r222490.
Change-Id: Ic557ac55e97fbf6ee08771c7b7c3594777b0aefd
Diffstat (limited to 'tools/clang-check')
-rw-r--r--tools/clang-check/ClangCheck.cpp72
-rw-r--r--tools/clang-check/Makefile2
2 files changed, 11 insertions, 63 deletions
diff --git a/tools/clang-check/ClangCheck.cpp b/tools/clang-check/ClangCheck.cpp
index cc8d43cec2..d92a8d5518 100644
--- a/tools/clang-check/ClangCheck.cpp
+++ b/tools/clang-check/ClangCheck.cpp
@@ -28,6 +28,7 @@
#include "llvm/Option/OptTable.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Signals.h"
+#include "llvm/ADT/STLExtras.h"
using namespace clang::driver;
using namespace clang::tooling;
@@ -77,15 +78,6 @@ static cl::opt<bool> FixWhatYouCan(
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 {
// FIXME: Move FixItRewriteInPlace from lib/Rewrite/Frontend/FrontendActions.cpp
@@ -139,57 +131,21 @@ public:
}
};
-class InsertAdjuster: public clang::tooling::ArgumentsAdjuster {
-public:
- enum Position { BEGIN, END };
-
- InsertAdjuster(const CommandLineArguments &Extra, Position Pos)
- : Extra(Extra), Pos(Pos) {
- }
-
- InsertAdjuster(const char *Extra, Position Pos)
- : Extra(1, std::string(Extra)), Pos(Pos) {
- }
-
- virtual CommandLineArguments
- Adjust(const CommandLineArguments &Args) override {
- CommandLineArguments Return(Args);
-
- CommandLineArguments::iterator I;
- if (Pos == END) {
- I = Return.end();
- } else {
- I = Return.begin();
- ++I; // To leave the program name in place
- }
-
- Return.insert(I, Extra.begin(), Extra.end());
- return Return;
- }
-
-private:
- const CommandLineArguments Extra;
- const Position Pos;
-};
-
-} // namespace
-
-// Anonymous namespace here causes problems with gcc <= 4.4 on MacOS 10.6.
-// "Non-global symbol: ... can't be a weak_definition"
-namespace clang_check {
class ClangCheckActionFactory {
public:
- clang::ASTConsumer *newASTConsumer() {
+ std::unique_ptr<clang::ASTConsumer> newASTConsumer() {
if (ASTList)
return clang::CreateASTDeclNodeLister();
if (ASTDump)
- return clang::CreateASTDumper(ASTDumpFilter);
+ return clang::CreateASTDumper(ASTDumpFilter, /*DumpDecls=*/true,
+ /*DumpLookups=*/false);
if (ASTPrint)
return clang::CreateASTPrinter(&llvm::outs(), ASTDumpFilter);
- return new clang::ASTConsumer();
+ return llvm::make_unique<clang::ASTConsumer>();
}
};
-}
+
+} // namespace
int main(int argc, const char **argv) {
llvm::sys::PrintStackTraceOnErrorSignal();
@@ -200,21 +156,13 @@ int main(int argc, const char **argv) {
// Clear adjusters because -fsyntax-only is inserted by the default chain.
Tool.clearArgumentsAdjusters();
Tool.appendArgumentsAdjuster(new ClangStripOutputAdjuster());
- if (ArgsAfter.size() > 0) {
- Tool.appendArgumentsAdjuster(new InsertAdjuster(ArgsAfter,
- InsertAdjuster::END));
- }
- if (ArgsBefore.size() > 0) {
- Tool.appendArgumentsAdjuster(new InsertAdjuster(ArgsBefore,
- InsertAdjuster::BEGIN));
- }
// Running the analyzer requires --analyze. Other modes can work with the
// -fsyntax-only option.
- Tool.appendArgumentsAdjuster(new InsertAdjuster(
- Analyze ? "--analyze" : "-fsyntax-only", InsertAdjuster::BEGIN));
+ Tool.appendArgumentsAdjuster(new InsertArgumentAdjuster(
+ Analyze ? "--analyze" : "-fsyntax-only", InsertArgumentAdjuster::BEGIN));
- clang_check::ClangCheckActionFactory CheckFactory;
+ ClangCheckActionFactory CheckFactory;
std::unique_ptr<FrontendActionFactory> FrontendFactory;
// Choose the correct factory based on the selected mode.
diff --git a/tools/clang-check/Makefile b/tools/clang-check/Makefile
index cf088d2689..e98a131de5 100644
--- a/tools/clang-check/Makefile
+++ b/tools/clang-check/Makefile
@@ -20,6 +20,6 @@ USEDLIBS = clangFrontend.a clangSerialization.a clangDriver.a \
clangTooling.a clangParse.a clangSema.a \
clangStaticAnalyzerFrontend.a clangStaticAnalyzerCheckers.a \
clangStaticAnalyzerCore.a clangAnalysis.a clangRewriteFrontend.a \
- clangRewriteCore.a clangEdit.a clangAST.a clangLex.a clangBasic.a
+ clangRewrite.a clangEdit.a clangAST.a clangLex.a clangBasic.a
include $(CLANG_LEVEL)/Makefile