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