| #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; |