Static Value-Flow Analysis
|
#include <ICFGEdge.h>
Public Types | |
enum | ICFGEdgeK { IntraCF , CallCF , RetCF } |
typedef ICFGEdgeK | SVFGEdgeK |
typedef GenericNode< ICFGNode, ICFGEdge >::GEdgeSetTy | ICFGEdgeSetTy |
typedef ICFGEdgeSetTy | SVFGEdgeSetTy |
Public Types inherited from SVF::GenericEdge< NodeTy > | |
typedef NodeTy | NodeType |
Node type. More... | |
typedef u64_t | GEdgeFlag |
typedef s64_t | GEdgeKind |
typedef struct SVF::GenericEdge::equalGEdge | equalGEdge |
Add the hash function for std::set (we also can overload operator< to implement this) More... | |
Public Member Functions | |
ICFGEdge (ICFGNode *s, ICFGNode *d, GEdgeFlag k) | |
Constructor. More... | |
~ICFGEdge () | |
Destructor. More... | |
bool | isCFGEdge () const |
Get methods of the components. More... | |
bool | isCallCFGEdge () const |
bool | isRetCFGEdge () const |
bool | isIntraCFGEdge () const |
virtual const std::string | toString () const |
Public Member Functions inherited from SVF::GenericEdge< NodeTy > | |
GenericEdge (NodeTy *s, NodeTy *d, GEdgeFlag k) | |
Constructor. More... | |
virtual | ~GenericEdge () |
Destructor. More... | |
NodeID | getSrcID () const |
get methods of the components More... | |
NodeID | getDstID () const |
GEdgeKind | getEdgeKind () const |
GEdgeKind | getEdgeKindWithoutMask () const |
NodeType * | getSrcNode () const |
NodeType * | getDstNode () const |
virtual bool | operator== (const GenericEdge< NodeType > *rhs) const |
Static Public Member Functions | |
static GEdgeFlag | makeEdgeFlagWithInvokeID (GEdgeKind k, CallSiteID cs) |
Compute the unique edgeFlag value from edge kind and CallSiteID. More... | |
Friends | |
class | SVFIRWriter |
class | SVFIRReader |
OutStream & | operator<< (OutStream &o, const ICFGEdge &edge) |
Overloading operator << for dumping ICFG node ID. More... | |
Additional Inherited Members | |
Static Protected Attributes inherited from SVF::GenericEdge< NodeTy > | |
static constexpr unsigned char | EdgeKindMaskBits = 8 |
We use the lower 8 bits to denote edge kind. More... | |
static constexpr u64_t | EdgeKindMask = (~0ULL) >> (64 - EdgeKindMaskBits) |
Definition at line 44 of file ICFGEdge.h.
typedef GenericNode<ICFGNode, ICFGEdge>::GEdgeSetTy SVF::ICFGEdge::ICFGEdgeSetTy |
Definition at line 90 of file ICFGEdge.h.
typedef ICFGEdgeK SVF::ICFGEdge::SVFGEdgeK |
Definition at line 60 of file ICFGEdge.h.
Definition at line 91 of file ICFGEdge.h.
ten types of ICFG edge three types of control-flow edges seven types of value-flow edges
Enumerator | |
---|---|
IntraCF | |
CallCF | |
RetCF |
Definition at line 53 of file ICFGEdge.h.
|
inline |
|
inline |
Definition at line 77 of file ICFGEdge.h.
|
inline |
|
inline |
Definition at line 85 of file ICFGEdge.h.
|
inline |
Definition at line 81 of file ICFGEdge.h.
|
inlinestatic |
Compute the unique edgeFlag value from edge kind and CallSiteID.
Definition at line 93 of file ICFGEdge.h.
|
virtual |
Reimplemented in SVF::RetCFGEdge, SVF::CallCFGEdge, and SVF::IntraCFGEdge.
Definition at line 157 of file ICFG.cpp.
Overloading operator << for dumping ICFG node ID.
Definition at line 100 of file ICFGEdge.h.
|
friend |
Definition at line 47 of file ICFGEdge.h.
|
friend |
Definition at line 46 of file ICFGEdge.h.