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