21 using namespace clang;
37 check::PostStmt<DeclStmt>,
38 check::PreObjCMessage,
39 check::PostObjCMessage,
40 check::ObjCMessageNil,
43 check::BranchCondition,
51 check::EndOfTranslationUnit,
57 check::ConstPointerEscape,
58 check::Event<ImplicitNullDerefEvent>,
59 check::ASTDecl<FunctionDecl> > {
241 bool Assumption)
const {
return State; }
Represents a function declaration or definition.
void checkASTDecl(const FunctionDecl *D, AnalysisManager &Mgr, BugReporter &BR) const
Check every declaration in the AST.
void checkObjCMessageNil(const ObjCMethodCall &M, CheckerContext &C) const
Visit an Objective-C message whose receiver is nil.
Stmt - This represents one statement.
This checker documents the callback functions checkers can use to implement the custom handling of th...
void checkEndAnalysis(ExplodedGraph &G, BugReporter &BR, ExprEngine &Eng) const
Called after all the paths in the ExplodedGraph reach end of path.
void checkPreStmt(const ReturnStmt *DS, CheckerContext &C) const
Pre-visit the Statement.
void checkLocation(SVal Loc, bool IsLoad, const Stmt *S, CheckerContext &) const
Called on a load from and a store to a location.
ProgramStateRef checkPointerEscape(ProgramStateRef State, const InvalidatedSymbols &Escaped, const CallEvent *Call, PointerEscapeKind Kind) const
Called when pointers escape.
void checkEndOfTranslationUnit(const TranslationUnitDecl *TU, AnalysisManager &Mgr, BugReporter &BR) const
Called after analysis of a TranslationUnit is complete.
Represents any expression that calls an Objective-C method.
void checkEndFunction(const ReturnStmt *RS, CheckerContext &Ctx) const
Called when the analyzer core reaches the end of a function being analyzed regardless of whether it i...
void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &) const
Called on binding of a value to a location.
void checkBranchCondition(const Stmt *Condition, CheckerContext &Ctx) const
Pre-visit of the condition statement of a branch (such as IfStmt).
We dereferenced a location that may be null.
void checkBeginFunction(CheckerContext &Ctx) const
Called when the analyzer core starts analyzing a function, regardless of whether it is analyzed at th...
void checkDeadSymbols(SymbolReaper &SR, CheckerContext &C) const
Called whenever a symbol becomes dead.
bool evalCall(const CallExpr *CE, CheckerContext &C) const
Evaluates function call.
ReturnStmt - This represents a return, optionally of an expression: return; return 4;...
BugReporter is a utility class for generating PathDiagnostics for analysis.
Represents a new-expression for memory allocation and constructor calls, e.g: "new CXXNewExpr(foo)"...
DeclStmt - Adaptor class for mixing declarations with statements and expressions. ...
void checkLiveSymbols(ProgramStateRef State, SymbolReaper &SR) const
Allows modifying SymbolReaper object.
SVal - This represents a symbolic expression, which can be either an L-value or an R-value...
void checkPreCall(const CallEvent &Call, CheckerContext &C) const
Pre-visit an abstract "call" event.
A class responsible for cleaning up unused symbols.
ProgramStateRef checkConstPointerEscape(ProgramStateRef State, const InvalidatedSymbols &Escaped, const CallEvent *Call, PointerEscapeKind Kind) const
Called when const pointers escape.
void checkPreObjCMessage(const ObjCMethodCall &M, CheckerContext &C) const
Pre-visit the Objective C message.
Dataflow Directional Tag Classes.
void checkPostCall(const CallEvent &Call, CheckerContext &C) const
Post-visit an abstract "call" event.
void checkPostStmt(const DeclStmt *DS, CheckerContext &C) const
Post-visit the Statement.
ProgramStateRef evalAssume(ProgramStateRef State, SVal Cond, bool Assumption) const
Handles assumptions on symbolic values.
Represents an abstract call to a function or method along a particular path.
PointerEscapeKind
Describes the different reasons a pointer escapes during analysis.
void checkPostObjCMessage(const ObjCMethodCall &M, CheckerContext &C) const
Post-visit the Objective C message.
CallExpr - Represents a function call (C99 6.5.2.2, C++ [expr.call]).
ProgramStateRef checkRegionChanges(ProgramStateRef State, const InvalidatedSymbols *Invalidated, ArrayRef< const MemRegion *> ExplicitRegions, ArrayRef< const MemRegion *> Regions, const LocationContext *LCtx, const CallEvent *Call) const
Called when the contents of one or more regions change.
The top declaration context.
void checkEvent(ImplicitNullDerefEvent Event) const
check::Event<ImplicitNullDerefEvent>
void checkNewAllocator(const CXXNewExpr *NE, SVal Target, CheckerContext &) const
Post-visit the C++ operator new's allocation call.