1 #include "clang/StaticAnalyzer/Core/Checker.h" 2 #include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h" 3 #include "clang/StaticAnalyzer/Frontend/CheckerRegistry.h" 4 5 using namespace clang; 6 using namespace ento; 7 8 namespace { 9 struct Dependency : public Checker<check::BeginFunction> { 10 void checkBeginFunction(CheckerContext &Ctx) const {} 11 }; 12 struct DependendentChecker : public Checker<check::BeginFunction> { 13 void checkBeginFunction(CheckerContext &Ctx) const {} 14 }; 15 } // end anonymous namespace 16 17 // Register plugin! 18 extern "C" void clang_registerCheckers(CheckerRegistry ®istry) { 19 registry.addChecker<Dependency>("example.Dependency", "", ""); 20 registry.addChecker<DependendentChecker>("example.DependendentChecker", "", 21 ""); 22 23 registry.addDependency("example.DependendentChecker", "example.Dependency"); 24 } 25 26 extern "C" const char clang_analyzerAPIVersionString[] = 27 CLANG_ANALYZER_API_VERSION_STRING; 28