Static Value-Flow Analysis
Loading...
Searching...
No Matches
SVF::ConstraintEdge Class Reference

#include <ConsGEdge.h>

Inheritance diagram for SVF::ConstraintEdge:
SVF::GenericEdge< ConstraintNode > 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.
Public Types inherited from SVF::GenericEdge< ConstraintNode >
typedef ConstraintNode 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

 ConstraintEdge (ConstraintNode *s, ConstraintNode *d, ConstraintEdgeK k, EdgeID id=0)
 Constructor.
 ~ConstraintEdge ()
 Destructor.
EdgeID getEdgeID () const
 Return edge ID.
Public Member Functions inherited from SVF::GenericEdge< ConstraintNode >
 GenericEdge (ConstraintNode *s, ConstraintNode *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 bool classof (const GenericConsEdgeTy *edge)
 ClassOf.

Private Attributes

EdgeID edgeId

Additional Inherited Members

Static Protected Attributes inherited from SVF::GenericEdge< ConstraintNode >
static constexpr unsigned char EdgeKindMaskBits
 We use the lower 8 bits to denote edge kind.
static constexpr u64_t EdgeKindMask

Detailed Description

Definition at line 48 of file ConsGEdge.h.

Member Typedef Documentation

◆ ConstraintEdgeSetTy

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:47

◆ ~ConstraintEdge()

SVF::ConstraintEdge::~ConstraintEdge ( )
inline

Destructor.

Definition at line 66 of file ConsGEdge.h.

67 {
68 }

Member Function Documentation

◆ classof()

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: