clang API Documentation

Public Member Functions
clang::ento::SubEngine Class Reference

#include <SubEngine.h>

Inheritance diagram for clang::ento::SubEngine:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual ~SubEngine ()
virtual ProgramStateRef getInitialState (const LocationContext *InitLoc)=0
virtual AnalysisManagergetAnalysisManager ()=0
virtual ProgramStateManagergetStateManager ()=0
virtual void processCFGElement (const CFGElement E, ExplodedNode *Pred, unsigned StmtIdx, NodeBuilderContext *Ctx)=0
virtual void processCFGBlockEntrance (const BlockEdge &L, NodeBuilderWithSinks &nodeBuilder, ExplodedNode *Pred)=0
virtual void processBranch (const Stmt *Condition, const Stmt *Term, NodeBuilderContext &BuilderCtx, ExplodedNode *Pred, ExplodedNodeSet &Dst, const CFGBlock *DstT, const CFGBlock *DstF)=0
virtual void processCleanupTemporaryBranch (const CXXBindTemporaryExpr *BTE, NodeBuilderContext &BldCtx, ExplodedNode *Pred, ExplodedNodeSet &Dst, const CFGBlock *DstT, const CFGBlock *DstF)=0
virtual void processStaticInitializer (const DeclStmt *DS, NodeBuilderContext &BuilderCtx, ExplodedNode *Pred, ExplodedNodeSet &Dst, const CFGBlock *DstT, const CFGBlock *DstF)=0
virtual void processIndirectGoto (IndirectGotoNodeBuilder &builder)=0
virtual void processSwitch (SwitchNodeBuilder &builder)=0
virtual void processEndOfFunction (NodeBuilderContext &BC, ExplodedNode *Pred)=0
virtual void processCallEnter (CallEnter CE, ExplodedNode *Pred)=0
virtual void processCallExit (ExplodedNode *Pred)=0
virtual ProgramStateRef processAssume (ProgramStateRef state, SVal cond, bool assumption)=0
virtual bool wantsRegionChangeUpdate (ProgramStateRef state)=0
virtual ProgramStateRef processRegionChanges (ProgramStateRef state, const InvalidatedSymbols *invalidated, ArrayRef< const MemRegion * > ExplicitRegions, ArrayRef< const MemRegion * > Regions, const CallEvent *Call)=0
ProgramStateRef processRegionChange (ProgramStateRef state, const MemRegion *MR)
virtual ProgramStateRef processPointerEscapedOnBind (ProgramStateRef State, SVal Loc, SVal Val)=0
virtual ProgramStateRef notifyCheckersOfPointerEscape (ProgramStateRef State, const InvalidatedSymbols *Invalidated, ArrayRef< const MemRegion * > ExplicitRegions, ArrayRef< const MemRegion * > Regions, const CallEvent *Call, RegionAndSymbolInvalidationTraits &HTraits)=0
virtual void printState (raw_ostream &Out, ProgramStateRef State, const char *NL, const char *Sep)=0
 printState - Called by ProgramStateManager to print checker-specific data.
virtual void processEndWorklist (bool hasWorkRemaining)=0
 Called by CoreEngine when the analysis worklist is either empty or the.

Detailed Description

Definition at line 43 of file SubEngine.h.


Constructor & Destructor Documentation

virtual clang::ento::SubEngine::~SubEngine ( ) [inline, virtual]

Definition at line 46 of file SubEngine.h.


Member Function Documentation

virtual ProgramStateRef clang::ento::SubEngine::getInitialState ( const LocationContext InitLoc) [pure virtual]

Implemented in clang::ento::ExprEngine.

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.

Implemented in clang::ento::ExprEngine.

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.

wantsRegionChangeUpdate - Called by ProgramStateManager to determine if a region change should trigger a processRegionChanges update.

Implemented in clang::ento::ExprEngine.


The documentation for this class was generated from the following files: