diff options
author | Don Hinton <hintonda@gmail.com> | 2019-06-02 15:53:43 +0000 |
---|---|---|
committer | Don Hinton <hintonda@gmail.com> | 2019-06-02 15:53:43 +0000 |
commit | ccbda6b0003b49d030f668c7f27dedca6d11ebda (patch) | |
tree | 4cae4366de6115f95b4c76590e7ef023d7e9857f /clang/lib/Analysis/plugins/CheckerDependencyHandling/CheckerDependencyHandling.cpp | |
parent | 71a39bcf68c3fd8b578c66fca8ad044793ad18e5 (diff) | |
download | bcm5719-llvm-ccbda6b0003b49d030f668c7f27dedca6d11ebda.tar.gz bcm5719-llvm-ccbda6b0003b49d030f668c7f27dedca6d11ebda.zip |
[test] Fix plugin tests
Recommit of r361790 that was temporarily reverted in r361793 due to bot breakage.
Summary:
The following changes were required to fix these tests:
1) Change LLVM_ENABLE_PLUGINS to an option and move it to
llvm/CMakeLists.txt with an appropriate default -- which matches
the original default behavior.
2) Move the plugins directory from clang/test/Analysis
clang/lib/Analysis. It's not enough to add an exclude to the
lit.local.cfg file because add_lit_testsuites recurses the tree and
automatically adds the appropriate `check-` targets, which don't
make sense for the plugins because they aren't tests and don't
have `RUN` statements.
Here's a list of the `clang-check-anlysis*` targets with this
change:
```
$ ninja -t targets all| sed -n "s/.*\/\(check[^:]*\):.*/\1/p" | sort -u | grep clang-analysis
check-clang-analysis
check-clang-analysis-checkers
check-clang-analysis-copypaste
check-clang-analysis-diagnostics
check-clang-analysis-engine
check-clang-analysis-exploration_order
check-clang-analysis-html_diagnostics
check-clang-analysis-html_diagnostics-relevant_lines
check-clang-analysis-inlining
check-clang-analysis-objc
check-clang-analysis-unified-sources
check-clang-analysis-z3
```
3) Simplify the logic and only include the subdirectories under
clang/lib/Analysis/plugins if LLVM_ENABLE_PLUGINS is set.
Reviewed By: NoQ
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D62445
llvm-svn: 362328
Diffstat (limited to 'clang/lib/Analysis/plugins/CheckerDependencyHandling/CheckerDependencyHandling.cpp')
-rw-r--r-- | clang/lib/Analysis/plugins/CheckerDependencyHandling/CheckerDependencyHandling.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/clang/lib/Analysis/plugins/CheckerDependencyHandling/CheckerDependencyHandling.cpp b/clang/lib/Analysis/plugins/CheckerDependencyHandling/CheckerDependencyHandling.cpp new file mode 100644 index 00000000000..be8e1200d0b --- /dev/null +++ b/clang/lib/Analysis/plugins/CheckerDependencyHandling/CheckerDependencyHandling.cpp @@ -0,0 +1,28 @@ +#include "clang/StaticAnalyzer/Core/BugReporter/BugType.h" +#include "clang/StaticAnalyzer/Core/Checker.h" +#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h" +#include "clang/StaticAnalyzer/Frontend/CheckerRegistry.h" + +using namespace clang; +using namespace ento; + +namespace { +struct Dependency : public Checker<check::BeginFunction> { + void checkBeginFunction(CheckerContext &Ctx) const {} +}; +struct DependendentChecker : public Checker<check::BeginFunction> { + void checkBeginFunction(CheckerContext &Ctx) const {} +}; +} // end anonymous namespace + +// Register plugin! +extern "C" void clang_registerCheckers(CheckerRegistry ®istry) { + registry.addChecker<Dependency>("example.Dependency", "", ""); + registry.addChecker<DependendentChecker>("example.DependendentChecker", "", + ""); + + registry.addDependency("example.DependendentChecker", "example.Dependency"); +} + +extern "C" const char clang_analyzerAPIVersionString[] = + CLANG_ANALYZER_API_VERSION_STRING; |