summaryrefslogtreecommitdiff
path: root/clang/examples
diff options
context:
space:
mode:
authorKristof Umann <kristof.umann@ericsson.com>2019-05-15 19:47:26 +0000
committerKristof Umann <kristof.umann@ericsson.com>2019-05-15 19:47:26 +0000
commit47241aaff70bcf2dbc535465c2d8075ae5c6ee44 (patch)
treeca966eaee6a956dd7cf684ff1358c9caac534b77 /clang/examples
parent1ca049959f579c1d5f51ffc0ed8a4d74e8a1c6c8 (diff)
downloadllvm-47241aaff70bcf2dbc535465c2d8075ae5c6ee44.tar.gz
[analyzer] Add a test for plugins using checker dependencies
Also, I moved the existing analyzer plugin to test/ as well, in order not to give the illusion that the analyzer supports plugins -- it's capable of handling them, but does not _support_ them. Differential Revision: https://reviews.llvm.org/D59464 llvm-svn: 360799
Diffstat (limited to 'clang/examples')
-rw-r--r--clang/examples/CMakeLists.txt3
-rw-r--r--clang/examples/analyzer-plugin/CMakeLists.txt11
-rw-r--r--clang/examples/analyzer-plugin/MainCallChecker.cpp54
-rw-r--r--clang/examples/analyzer-plugin/SampleAnalyzerPlugin.exports2
4 files changed, 0 insertions, 70 deletions
diff --git a/clang/examples/CMakeLists.txt b/clang/examples/CMakeLists.txt
index 8c2654840a98..e4fedf3682e8 100644
--- a/clang/examples/CMakeLists.txt
+++ b/clang/examples/CMakeLists.txt
@@ -3,9 +3,6 @@ if(NOT CLANG_BUILD_EXAMPLES)
set(EXCLUDE_FROM_ALL ON)
endif()
-if(CLANG_ENABLE_STATIC_ANALYZER)
-add_subdirectory(analyzer-plugin)
-endif()
add_subdirectory(clang-interpreter)
add_subdirectory(PrintFunctionNames)
add_subdirectory(AnnotateFunctions)
diff --git a/clang/examples/analyzer-plugin/CMakeLists.txt b/clang/examples/analyzer-plugin/CMakeLists.txt
deleted file mode 100644
index 7c7b2aec1988..000000000000
--- a/clang/examples/analyzer-plugin/CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/SampleAnalyzerPlugin.exports)
-add_llvm_library(SampleAnalyzerPlugin MODULE MainCallChecker.cpp PLUGIN_TOOL clang)
-
-if(LLVM_ENABLE_PLUGINS AND (WIN32 OR CYGWIN))
- target_link_libraries(SampleAnalyzerPlugin PRIVATE
- clangAnalysis
- clangAST
- clangStaticAnalyzerCore
- LLVMSupport
- )
-endif()
diff --git a/clang/examples/analyzer-plugin/MainCallChecker.cpp b/clang/examples/analyzer-plugin/MainCallChecker.cpp
deleted file mode 100644
index 77316d696de3..000000000000
--- a/clang/examples/analyzer-plugin/MainCallChecker.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-#include "clang/StaticAnalyzer/Core/Checker.h"
-#include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
-#include "clang/StaticAnalyzer/Frontend/CheckerRegistry.h"
-#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
-
-using namespace clang;
-using namespace ento;
-
-namespace {
-class MainCallChecker : public Checker < check::PreStmt<CallExpr> > {
- mutable std::unique_ptr<BugType> BT;
-
-public:
- void checkPreStmt(const CallExpr *CE, CheckerContext &C) const;
-};
-} // end anonymous namespace
-
-void MainCallChecker::checkPreStmt(const CallExpr *CE, CheckerContext &C) const {
- const Expr *Callee = CE->getCallee();
- const FunctionDecl *FD = C.getSVal(Callee).getAsFunctionDecl();
-
- if (!FD)
- return;
-
- // Get the name of the callee.
- IdentifierInfo *II = FD->getIdentifier();
- if (!II) // if no identifier, not a simple C function
- return;
-
- if (II->isStr("main")) {
- ExplodedNode *N = C.generateErrorNode();
- if (!N)
- return;
-
- if (!BT)
- BT.reset(new BugType(this, "call to main", "example analyzer plugin"));
-
- std::unique_ptr<BugReport> report =
- llvm::make_unique<BugReport>(*BT, BT->getName(), N);
- report->addRange(Callee->getSourceRange());
- C.emitReport(std::move(report));
- }
-}
-
-// Register plugin!
-extern "C"
-void clang_registerCheckers (CheckerRegistry &registry) {
- registry.addChecker<MainCallChecker>(
- "example.MainCallChecker", "Disallows calls to functions called main",
- "");
-}
-
-extern "C"
-const char clang_analyzerAPIVersionString[] = CLANG_ANALYZER_API_VERSION_STRING;
diff --git a/clang/examples/analyzer-plugin/SampleAnalyzerPlugin.exports b/clang/examples/analyzer-plugin/SampleAnalyzerPlugin.exports
deleted file mode 100644
index 8d9ff882cfb1..000000000000
--- a/clang/examples/analyzer-plugin/SampleAnalyzerPlugin.exports
+++ /dev/null
@@ -1,2 +0,0 @@
-clang_registerCheckers
-clang_analyzerAPIVersionString