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.