| Static Value-Flow Analysis
    | 
#include <VFGEdge.h>
 
  
| Public Types | |
| enum | VFGEdgeK { IntraDirectVF , IntraIndirectVF , CallDirVF , RetDirVF , CallIndVF , RetIndVF , TheadMHPIndirectVF } | 
| typedef VFGEdgeK | SVFGEdgeK | 
| typedef GenericNode< VFGNode, VFGEdge >::GEdgeSetTy | VFGEdgeSetTy | 
| typedef VFGEdgeSetTy | SVFGEdgeSetTy | 
|  Public Types inherited from SVF::GenericEdge< NodeTy > | |
| typedef NodeTy | NodeType | 
| Node type. | |
| 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) | |
| Public Member Functions | |
| VFGEdge (VFGNode *s, VFGNode *d, GEdgeFlag k) | |
| Constructor. | |
| ~VFGEdge () | |
| Destructor. | |
| bool | isDirectVFGEdge () const | 
| Get methods of the components. | |
| bool | isIndirectVFGEdge () const | 
| bool | isCallVFGEdge () const | 
| bool | isRetVFGEdge () const | 
| bool | isCallDirectVFGEdge () const | 
| bool | isRetDirectVFGEdge () const | 
| bool | isCallIndirectVFGEdge () const | 
| bool | isRetIndirectVFGEdge () const | 
| bool | isIntraVFGEdge () const | 
| bool | isThreadMHPIndirectVFGEdge () const | 
| virtual const std::string | toString () const | 
|  Public Member Functions inherited from SVF::GenericEdge< NodeTy > | |
| GenericEdge (NodeTy *s, NodeTy *d, GEdgeFlag k) | |
| Constructor. | |
| virtual | ~GenericEdge () | 
| Destructor. | |
| NodeID | getSrcID () const | 
| get methods of the components | |
| 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. | |
| Friends | |
| OutStream & | operator<< (OutStream &o, const VFGEdge &edge) | 
| Overloading operator << for dumping ICFG node ID. | |
| 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. | |
| static constexpr u64_t | EdgeKindMask = (~0ULL) >> (64 - EdgeKindMaskBits) | 
| typedef GenericNode<VFGNode,VFGEdge>::GEdgeSetTy SVF::VFGEdge::VFGEdgeSetTy | 
seven types of ICFG edge four types of direct value-flow edges three types of indirect value-flow edges
| Enumerator | |
|---|---|
| IntraDirectVF | |
| IntraIndirectVF | |
| CallDirVF | |
| RetDirVF | |
| CallIndVF | |
| RetIndVF | |
| TheadMHPIndirectVF | |
Definition at line 51 of file VFGEdge.h.
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
Get methods of the components.
Definition at line 76 of file VFGEdge.h.
| 
 | inline | 
Definition at line 80 of file VFGEdge.h.
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inline | 
| 
 | inlinestatic | 
Compute the unique edgeFlag value from edge kind and CallSiteID.
Definition at line 120 of file VFGEdge.h.
| 
 | virtual | 
Reimplemented in SVF::IndirectSVFGEdge, SVF::IntraIndSVFGEdge, SVF::CallIndSVFGEdge, SVF::RetIndSVFGEdge, SVF::ThreadMHPIndSVFGEdge, SVF::DirectSVFGEdge, SVF::IntraDirSVFGEdge, SVF::CallDirSVFGEdge, and SVF::RetDirSVFGEdge.
Definition at line 363 of file VFG.cpp.