#ifndef LLVM_CLANG_STATICANALYZER_CORE_CHECKER_H
#define LLVM_CLANG_STATICANALYZER_CORE_CHECKER_H
#include "clang/Analysis/ProgramPoint.h"
#include "clang/Basic/LangOptions.h"
#include "clang/StaticAnalyzer/Core/CheckerManager.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h"
#include "llvm/Support/Casting.h"
namespace clang {
namespace ento {
class BugReporter;
namespace check {
template <typename DECL>
class ASTDecl { … };
class ASTCodeBody { … };
class EndOfTranslationUnit { … };
template <typename STMT>
class PreStmt { … };
template <typename STMT>
class PostStmt { … };
class PreObjCMessage { … };
class ObjCMessageNil { … };
class PostObjCMessage { … };
class PreCall { … };
class PostCall { … };
class Location { … };
class Bind { … };
class EndAnalysis { … };
class BeginFunction { … };
class EndFunction { … };
class BranchCondition { … };
class NewAllocator { … };
class LiveSymbols { … };
class DeadSymbols { … };
class RegionChanges { … };
class PointerEscape { … };
class ConstPointerEscape { … };
template <typename EVENT>
class Event { … };
}
namespace eval {
class Assume { … };
class Call { … };
}
class CheckerBase : public ProgramPointTag { … };
raw_ostream& operator<<(raw_ostream &Out, const CheckerBase &Checker);
class CheckerProgramPointTag : public SimpleProgramPointTag { … };
template <typename CHECK1, typename... CHECKs>
class Checker : public CHECK1, public CHECKs..., public CheckerBase { … };
Checker<CHECK1>;
template <typename EVENT>
class EventDispatcher { … };
struct ImplicitNullDerefEvent { … };
}
}
#endif