clang API Documentation
#include <SubEngine.h>
Definition at line 43 of file SubEngine.h.
virtual clang::ento::SubEngine::~SubEngine | ( | ) | [inline, virtual] |
Definition at line 46 of file SubEngine.h.
virtual AnalysisManager& clang::ento::SubEngine::getAnalysisManager | ( | ) | [pure virtual] |
Implemented in clang::ento::ExprEngine.
Referenced by clang::ento::SuppressInlineDefensiveChecksVisitor::SuppressInlineDefensiveChecksVisitor().
virtual ProgramStateRef clang::ento::SubEngine::getInitialState | ( | const LocationContext * | InitLoc | ) | [pure virtual] |
Implemented in clang::ento::ExprEngine.
virtual ProgramStateManager& clang::ento::SubEngine::getStateManager | ( | ) | [pure virtual] |
Implemented in clang::ento::ExprEngine.
virtual ProgramStateRef clang::ento::SubEngine::notifyCheckersOfPointerEscape | ( | ProgramStateRef | State, |
const InvalidatedSymbols * | Invalidated, | ||
ArrayRef< const MemRegion * > | ExplicitRegions, | ||
ArrayRef< const MemRegion * > | Regions, | ||
const CallEvent * | Call, | ||
RegionAndSymbolInvalidationTraits & | HTraits | ||
) | [pure virtual] |
Implemented in clang::ento::ExprEngine.
virtual void clang::ento::SubEngine::printState | ( | raw_ostream & | Out, |
ProgramStateRef | State, | ||
const char * | NL, | ||
const char * | Sep | ||
) | [pure virtual] |
printState - Called by ProgramStateManager to print checker-specific data.
Implemented in clang::ento::ExprEngine.
Referenced by clang::ento::ProgramState::print().
virtual ProgramStateRef clang::ento::SubEngine::processAssume | ( | ProgramStateRef | state, |
SVal | cond, | ||
bool | assumption | ||
) | [pure virtual] |
Called by ConstraintManager. Used to call checker-specific logic for handling assumptions on symbolic values.
Implemented in clang::ento::ExprEngine.
Referenced by clang::ento::SimpleConstraintManager::assume().
virtual void clang::ento::SubEngine::processBranch | ( | const Stmt * | Condition, |
const Stmt * | Term, | ||
NodeBuilderContext & | BuilderCtx, | ||
ExplodedNode * | Pred, | ||
ExplodedNodeSet & | Dst, | ||
const CFGBlock * | DstT, | ||
const CFGBlock * | DstF | ||
) | [pure virtual] |
Called by CoreEngine. Used to generate successor nodes by processing the 'effects' of a branch condition.
Implemented in clang::ento::ExprEngine.
virtual void clang::ento::SubEngine::processCallEnter | ( | CallEnter | CE, |
ExplodedNode * | Pred | ||
) | [pure virtual] |
Implemented in clang::ento::ExprEngine.
virtual void clang::ento::SubEngine::processCallExit | ( | ExplodedNode * | Pred | ) | [pure virtual] |
Implemented in clang::ento::ExprEngine.
virtual void clang::ento::SubEngine::processCFGBlockEntrance | ( | const BlockEdge & | L, |
NodeBuilderWithSinks & | nodeBuilder, | ||
ExplodedNode * | Pred | ||
) | [pure virtual] |
Called by CoreEngine when it starts processing a CFGBlock. The SubEngine is expected to populate dstNodes with new nodes representing updated analysis state, or generate no nodes at all if it doesn't.
Implemented in clang::ento::ExprEngine.
virtual void clang::ento::SubEngine::processCFGElement | ( | const CFGElement | E, |
ExplodedNode * | Pred, | ||
unsigned | StmtIdx, | ||
NodeBuilderContext * | Ctx | ||
) | [pure virtual] |
Called by CoreEngine. Used to generate new successor nodes by processing the 'effects' of a block-level statement.
Implemented in clang::ento::ExprEngine.
virtual void clang::ento::SubEngine::processCleanupTemporaryBranch | ( | const CXXBindTemporaryExpr * | BTE, |
NodeBuilderContext & | BldCtx, | ||
ExplodedNode * | Pred, | ||
ExplodedNodeSet & | Dst, | ||
const CFGBlock * | DstT, | ||
const CFGBlock * | DstF | ||
) | [pure virtual] |
Called by CoreEngine. Used to generate successor nodes for temporary destructors depending on whether the corresponding constructor was visited.
Implemented in clang::ento::ExprEngine.
virtual void clang::ento::SubEngine::processEndOfFunction | ( | NodeBuilderContext & | BC, |
ExplodedNode * | Pred | ||
) | [pure virtual] |
Called by CoreEngine. Used to generate end-of-path nodes when the control reaches the end of a function.
Implemented in clang::ento::ExprEngine.
virtual void clang::ento::SubEngine::processEndWorklist | ( | bool | hasWorkRemaining | ) | [pure virtual] |
Called by CoreEngine when the analysis worklist is either empty or the.
Implemented in clang::ento::ExprEngine.
virtual void clang::ento::SubEngine::processIndirectGoto | ( | IndirectGotoNodeBuilder & | builder | ) | [pure virtual] |
Called by CoreEngine. Used to generate successor nodes by processing the 'effects' of a computed goto jump.
Implemented in clang::ento::ExprEngine.
virtual ProgramStateRef clang::ento::SubEngine::processPointerEscapedOnBind | ( | ProgramStateRef | State, |
SVal | Loc, | ||
SVal | Val | ||
) | [pure virtual] |
Implemented in clang::ento::ExprEngine.
ProgramStateRef clang::ento::SubEngine::processRegionChange | ( | ProgramStateRef | state, |
const MemRegion * | MR | ||
) | [inline] |
Definition at line 133 of file SubEngine.h.
References processRegionChanges().
Referenced by clang::ento::ProgramState::bindDefault(), and clang::ento::ProgramState::bindLoc().
virtual ProgramStateRef clang::ento::SubEngine::processRegionChanges | ( | ProgramStateRef | state, |
const InvalidatedSymbols * | invalidated, | ||
ArrayRef< const MemRegion * > | ExplicitRegions, | ||
ArrayRef< const MemRegion * > | Regions, | ||
const CallEvent * | Call | ||
) | [pure virtual] |
processRegionChanges - Called by ProgramStateManager whenever a change is made to the store. Used to update checkers that track region values.
Implemented in clang::ento::ExprEngine.
Referenced by processRegionChange().
virtual void clang::ento::SubEngine::processStaticInitializer | ( | const DeclStmt * | DS, |
NodeBuilderContext & | BuilderCtx, | ||
ExplodedNode * | Pred, | ||
ExplodedNodeSet & | Dst, | ||
const CFGBlock * | DstT, | ||
const CFGBlock * | DstF | ||
) | [pure virtual] |
Called by CoreEngine. Used to processing branching behavior at static initalizers.
Implemented in clang::ento::ExprEngine.
virtual void clang::ento::SubEngine::processSwitch | ( | SwitchNodeBuilder & | builder | ) | [pure virtual] |
Called by CoreEngine. Used to generate successor nodes by processing the 'effects' of a switch statement.
Implemented in clang::ento::ExprEngine.
virtual bool clang::ento::SubEngine::wantsRegionChangeUpdate | ( | ProgramStateRef | state | ) | [pure virtual] |
wantsRegionChangeUpdate - Called by ProgramStateManager to determine if a region change should trigger a processRegionChanges update.
Implemented in clang::ento::ExprEngine.