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 Andric extern "C" void clang_registerCheckers(CheckerRegistry &registry) {
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