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

#include <ConsGEdge.h>

Inheritance diagram for SVF::AddrCGEdge:
SVF::ConstraintEdge SVF::GenericEdge< ConstraintNode >

Public Member Functions

 AddrCGEdge (ConstraintNode *s, ConstraintNode *d, EdgeID id)
 constructor
Public Member Functions inherited from SVF::ConstraintEdge
 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 AddrCGEdge *)
 Methods for support type inquiry through isa, cast, and dyn_cast:
static bool classof (const ConstraintEdge *edge)
static bool classof (const GenericConsEdgeTy *edge)
Static Public Member Functions inherited from SVF::ConstraintEdge
static bool classof (const GenericConsEdgeTy *edge)
 ClassOf.

Private Member Functions

 AddrCGEdge ()
 place holder
 AddrCGEdge (const AddrCGEdge &)
 place holder
void operator= (const AddrCGEdge &)
 place holder

Additional Inherited Members

Public Types inherited from SVF::ConstraintEdge
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).
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

Copy edge

Definition at line 93 of file ConsGEdge.h.

Constructor & Destructor Documentation

◆ AddrCGEdge() [1/3]

SVF::AddrCGEdge::AddrCGEdge ( )
private

place holder

◆ AddrCGEdge() [2/3]

SVF::AddrCGEdge::AddrCGEdge ( const AddrCGEdge & )
private

place holder

◆ AddrCGEdge() [3/3]

AddrCGEdge::AddrCGEdge ( ConstraintNode * s,
ConstraintNode * d,
EdgeID id )

constructor

Constructor for address constraint graph edge

Definition at line 191 of file ConsG.cpp.

192 : ConstraintEdge(s,d,Addr,id)
193{
194 // Retarget addr edges may lead s to be a dummy node
195 const SVFVar* node = SVFIR::getPAG()->getSVFVar(s->getId());
196 (void)node; // Suppress warning of unused variable under release build
198 {
199 assert(!SVFUtil::isa<DummyValVar>(node) && "a dummy node??");
200 }
201}
ConstraintEdge(ConstraintNode *s, ConstraintNode *d, ConstraintEdgeK k, EdgeID id=0)
Constructor.
Definition ConsGEdge.h:62
static bool pagReadFromTXT()
Definition SVFIR.h:281
const SVFVar * getSVFVar(NodeID id) const
ObjVar/GepObjVar/BaseObjVar.
Definition SVFIR.h:136
static SVFIR * getPAG(bool buildFromFile=false)
Singleton design here to make sure we only have one instance during any analysis.
Definition SVFIR.h:121
NodeID getId() const
Get ID.
Definition SVFValue.h:158
LLVM_NODISCARD bool isa(const Y &Val)
Definition Casting.h:241

Member Function Documentation

◆ classof() [1/3]

bool SVF::AddrCGEdge::classof ( const AddrCGEdge * )
inlinestatic

Methods for support type inquiry through isa, cast, and dyn_cast:

Definition at line 102 of file ConsGEdge.h.

103 {
104 return true;
105 }

◆ classof() [2/3]

bool SVF::AddrCGEdge::classof ( const ConstraintEdge * edge)
inlinestatic

Definition at line 106 of file ConsGEdge.h.

107 {
108 return edge->getEdgeKind() == Addr;
109 }

◆ classof() [3/3]

bool SVF::AddrCGEdge::classof ( const GenericConsEdgeTy * edge)
inlinestatic

Definition at line 110 of file ConsGEdge.h.

111 {
112 return edge->getEdgeKind() == Addr;
113 }

◆ operator=()

void SVF::AddrCGEdge::operator= ( const AddrCGEdge & )
private

place holder


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