Predator  [unstable] git snapshot
Public Types | Public Member Functions | Private Member Functions | Private Attributes
SymStateMap Class Reference

higher-level container that maintains a SymStateMarked object per each basic block. More...

#include <symstate.hh>

Inheritance diagram for SymStateMap:
Inheritance graph
[legend]
Collaboration diagram for SymStateMap:
Collaboration graph
[legend]

Public Types

typedef std::vector< const
CodeStorage::Block * > 
TContBlock

Public Member Functions

 SymStateMap ()
virtual ~SymStateMap ()
SymStateMarkedoperator[] (const CodeStorage::Block *)
 state lookup, basically equal to std::map semantic
bool insert (const CodeStorage::Block *dst, const SymHeap &sh, bool allowThreeWay=true)
 managed insertion of the state that keeps track of the relation among source and destination basic blocks
bool anyReuseHappened (const CodeStorage::Block *) const
 true if the specified block has ever joined/entailed any given state
virtual int cntPending (const CodeStorage::Block *) const
 return count of heaps pending for execution in the specified blcok

Private Member Functions

 SymStateMap (const SymStateMap &)
 object copying is not allowed
SymStateMapoperator= (const SymStateMap &)
 object copying is not allowed

Private Attributes

Private * d

Detailed Description

higher-level container that maintains a SymStateMarked object per each basic block.

It's used by SymExecEngine and PathTracer classes.

Definition at line 260 of file symstate.hh.

Member Typedef Documentation

typedef std::vector<const CodeStorage::Block *> TContBlock

Definition at line 262 of file symstate.hh.

Constructor & Destructor Documentation

virtual ~SymStateMap ( )
virtual
SymStateMap ( const SymStateMap )
private

object copying is not allowed

Member Function Documentation

bool anyReuseHappened ( const CodeStorage::Block ) const

true if the specified block has ever joined/entailed any given state

virtual int cntPending ( const CodeStorage::Block ) const
virtual

return count of heaps pending for execution in the specified blcok

Implements IPendingCountProvider.

bool insert ( const CodeStorage::Block dst,
const SymHeap sh,
bool  allowThreeWay = true 
)

managed insertion of the state that keeps track of the relation among source and destination basic blocks

Parameters
dstdestination basic block (where the insertion occurs)
shan instance of symbolic heap that should be inserted
allowThreeWayif true, three-way join is allowed
SymStateMap& operator= ( const SymStateMap )
private

object copying is not allowed

SymStateMarked& operator[] ( const CodeStorage::Block )

state lookup, basically equal to std::map semantic

Field Documentation

Private* d
private

Definition at line 294 of file symstate.hh.


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