ClearBlue
Public Types | Public Member Functions | Data Fields | Static Public Attributes | Protected Member Functions
SEGTrace Class Reference
Inheritance diagram for SEGTrace:
Inheritance graph
[legend]
Collaboration diagram for SEGTrace:
Collaboration graph
[legend]

Public Types

enum  TraceKind { TK_ValueFlow, TK_ResourceLeak }
 
typedef uint64_t StepType
 

Public Member Functions

virtual TraceKind getKind () const
 
 SEGTrace (const SEGTrace &T)
 
 SEGTrace (const kvec< const SEGObject * > &Trace)
 
 SEGTrace (const SEGObject *Obj)
 Create a trace that only contains Obj.
 
 SEGTrace (const SEGObject *Obj1, const SEGObject *Obj2)
 
 SEGTrace (const LLVMValueTrace *ValueTrace, SEGMapBase *SEGs)
 
SEGTraceoperator= (const SEGTrace &T)
 
virtual void resetWithLLVMValueTrace (const LLVMValueTrace *ValueTrace, SEGMapBase *SEGs)
 
virtual int getValidStartIdx () const
 
virtual int getKeyIdx () const
 
virtual int getLEVFSrcIdx (bool isConsiderLoad=false) const
 
StepType getStepType (int StepIdx) const
 
void setStepType (int StepIdx, StepType STy)
 
int getNumAdditionalConds () const
 
SEGRegionNodegetAdditionalCond (int idx) const
 
void addAdditionalCond (SEGRegionNode *cond)
 
void clearAdditionalCond ()
 
template<typename Predicate >
std::pair< const SEGObject *, int > find (int StartIndex, Predicate P) const
 
template<typename Predicate >
std::pair< const SEGObject *, size_t > rfind (size_t StartIndex, Predicate P) const
 
virtual void print (raw_ostream &O)
 

Data Fields

const StepType DEFAULT_STEP_TYPE = STY_VALUE | STY_USE_SITE
 

Static Public Attributes

const static StepType STY_VALUE = 0x1
 
const static StepType STY_USE_SITE = 0x2
 

Protected Member Functions

int guessLEVFSrcIdx (bool IsConsiderLoad) const
 

Member Function Documentation

◆ find()

template<typename Predicate >
std::pair<const SEGObject *, int> SEGTrace::find ( int  StartIndex,
Predicate  P 
) const
inline

Searching the trace from the StartIndex until the predicate P is satisfied. Return the found SEGObject and its index.


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