Static Value-Flow Analysis
Loading...
Searching...
No Matches
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.
 
- 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

 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< 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 bool classof (const GenericConsEdgeTy *edge)
 ClassOf.
 

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.
 
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.

63 {
64 }
GenericEdge< ConstraintNode > GenericConsEdgeTy
Definition ConsGEdge.h:47
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76

◆ ~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: