Static Value-Flow Analysis
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
SVF::ConstraintEdge Class Reference

#include <ConsGEdge.h>

Inheritance diagram for SVF::ConstraintEdge:
SVF::GenericEdge< NodeTy > SVF::AddrCGEdge SVF::CopyCGEdge SVF::GepCGEdge SVF::LoadCGEdge SVF::StoreCGEdge SVF::NormalGepCGEdge SVF::VariantGepCGEdge

Public Types

enum  ConstraintEdgeK {
  Addr , Copy , Store , Load ,
  NormalGep , VariantGep
}
 
typedef GenericNode< ConstraintNode, ConstraintEdge >::GEdgeSetTy ConstraintEdgeSetTy
 Constraint edge type. More...
 
- 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

 ConstraintEdge (ConstraintNode *s, ConstraintNode *d, ConstraintEdgeK k, EdgeID id=0)
 Constructor. More...
 
 ~ConstraintEdge ()
 Destructor. More...
 
EdgeID getEdgeID () const
 Return edge ID. More...
 
- 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
 
NodeTypegetSrcNode () const
 
NodeTypegetDstNode () const
 
virtual bool operator== (const GenericEdge< NodeType > *rhs) const
 

Static Public Member Functions

static bool classof (const GenericConsEdgeTy *edge)
 ClassOf. More...
 

Private Attributes

EdgeID edgeId
 

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)
 

Detailed Description

Definition at line 48 of file ConsGEdge.h.

Member Typedef Documentation

◆ ConstraintEdgeSetTy

Constraint edge type.

Definition at line 85 of file ConsGEdge.h.

Member Enumeration Documentation

◆ ConstraintEdgeK

five kinds of constraint graph edges Gep edge is used for field sensitivity

Enumerator
Addr 
Copy 
Store 
Load 
NormalGep 
VariantGep 

Definition at line 54 of file ConsGEdge.h.

Constructor & Destructor Documentation

◆ ConstraintEdge()

SVF::ConstraintEdge::ConstraintEdge ( ConstraintNode s,
ConstraintNode d,
ConstraintEdgeK  k,
EdgeID  id = 0 
)
inline

Constructor.

Definition at line 62 of file ConsGEdge.h.

62  : GenericConsEdgeTy(s,d,k),edgeId(id)
63  {
64  }
GenericEdge< ConstraintNode > GenericConsEdgeTy
Definition: ConsGEdge.h:42

◆ ~ConstraintEdge()

SVF::ConstraintEdge::~ConstraintEdge ( )
inline

Destructor.

Definition at line 66 of file ConsGEdge.h.

67  {
68  }

Member Function Documentation

◆ classof()

static bool SVF::ConstraintEdge::classof ( const GenericConsEdgeTy edge)
inlinestatic

ClassOf.

Definition at line 75 of file ConsGEdge.h.

76  {
77  return edge->getEdgeKind() == Addr ||
78  edge->getEdgeKind() == Copy ||
79  edge->getEdgeKind() == Store ||
80  edge->getEdgeKind() == Load ||
81  edge->getEdgeKind() == NormalGep ||
82  edge->getEdgeKind() == VariantGep;
83  }

◆ getEdgeID()

EdgeID SVF::ConstraintEdge::getEdgeID ( ) const
inline

Return edge ID.

Definition at line 70 of file ConsGEdge.h.

71  {
72  return edgeId;
73  }

Member Data Documentation

◆ edgeId

EdgeID SVF::ConstraintEdge::edgeId
private

Definition at line 59 of file ConsGEdge.h.


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