31 lines · cpp
1#include "clang/StaticAnalyzer/Core/Checker.h"2#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"3#include "clang/StaticAnalyzer/Frontend/CheckerRegistry.h"4 5// This barebones plugin is used by clang/test/Analysis/checker-plugins.c6// to test dependency handling among checkers loaded from plugins.7 8using namespace clang;9using namespace ento;10 11namespace {12struct Dependency : public Checker<check::BeginFunction> {13 void checkBeginFunction(CheckerContext &Ctx) const {}14};15struct DependendentChecker : public Checker<check::BeginFunction> {16 void checkBeginFunction(CheckerContext &Ctx) const {}17};18} // end anonymous namespace19 20// Register plugin!21extern "C" void clang_registerCheckers(CheckerRegistry &Registry) {22 Registry.addChecker<Dependency>("example.Dependency", "MockDescription");23 Registry.addChecker<DependendentChecker>("example.DependendentChecker",24 "MockDescription");25 26 Registry.addDependency("example.DependendentChecker", "example.Dependency");27}28 29extern "C" const char clang_analyzerAPIVersionString[] =30 CLANG_ANALYZER_API_VERSION_STRING;31