Static Value-Flow Analysis
|
#include <ICFGNode.h>
Public Member Functions | |
ICFGNode (NodeID i, GNodeK k) | |
Constructor. More... | |
virtual const SVFFunction * | getFun () const |
Return the function of this ICFGNode. More... | |
virtual const SVFBasicBlock * | getBB () const |
Return the basic block of this ICFGNode. More... | |
virtual const std::string | toString () const |
void | dump () const |
void | addVFGNode (const VFGNode *vfgNode) |
const VFGNodeList & | getVFGNodes () const |
void | addSVFStmt (const SVFStmt *edge) |
const SVFStmtList & | getSVFStmts () const |
Public Member Functions inherited from SVF::GenericNode< NodeTy, EdgeTy > | |
GenericNode (NodeID i, GNodeK k) | |
Constructor. More... | |
virtual | ~GenericNode () |
Destructor. More... | |
bool | hasIncomingEdge () const |
Has incoming/outgoing edge set. More... | |
bool | hasOutgoingEdge () const |
iterator | OutEdgeBegin () |
iterators More... | |
iterator | OutEdgeEnd () |
iterator | InEdgeBegin () |
iterator | InEdgeEnd () |
const_iterator | OutEdgeBegin () const |
const_iterator | OutEdgeEnd () const |
const_iterator | InEdgeBegin () const |
const_iterator | InEdgeEnd () const |
virtual iterator | directOutEdgeBegin () |
Iterators used for SCC detection, overwrite it in child class if necessary. More... | |
virtual iterator | directOutEdgeEnd () |
virtual iterator | directInEdgeBegin () |
virtual iterator | directInEdgeEnd () |
virtual const_iterator | directOutEdgeBegin () const |
virtual const_iterator | directOutEdgeEnd () const |
virtual const_iterator | directInEdgeBegin () const |
virtual const_iterator | directInEdgeEnd () const |
bool | addIncomingEdge (EdgeType *inEdge) |
Add incoming and outgoing edges. More... | |
bool | addOutgoingEdge (EdgeType *outEdge) |
EdgeType * | hasIncomingEdge (EdgeType *edge) const |
Find incoming and outgoing edges. More... | |
EdgeType * | hasOutgoingEdge (EdgeType *edge) const |
const GEdgeSetTy & | getOutEdges () const |
const GEdgeSetTy & | getInEdges () const |
u32_t | removeIncomingEdge (EdgeType *edge) |
u32_t | removeOutgoingEdge (EdgeType *edge) |
Public Member Functions inherited from SVF::SVFBaseNode | |
SVFBaseNode (NodeID i, GNodeK k, SVFType *ty=nullptr) | |
NodeID | getId () const |
Get ID. More... | |
GNodeK | getNodeKind () const |
Get node kind. More... | |
virtual const SVFType * | getType () const |
virtual void | setSourceLoc (const std::string &sourceCodeInfo) |
virtual const std::string | getSourceLoc () const |
const std::string | valueOnlyToString () const |
Static Public Member Functions | |
static bool | classof (const ICFGNode *) |
static bool | classof (const GenericICFGNodeTy *node) |
static bool | classof (const SVFBaseNode *node) |
Static Public Member Functions inherited from SVF::GenericNode< NodeTy, EdgeTy > | |
static bool | classof (const GenericNode< NodeTy, EdgeTy > *) |
static bool | classof (const SVFBaseNode *) |
Protected Attributes | |
const SVFFunction * | fun |
const SVFBasicBlock * | bb |
VFGNodeList | VFGNodes |
SVFStmtList | pagEdges |
Protected Attributes inherited from SVF::SVFBaseNode | |
NodeID | id |
Node ID. More... | |
GNodeK | nodeKind |
Node kind. More... | |
const SVFType * | type |
SVF type. More... | |
std::string | sourceLoc |
Source code information of this value. More... | |
Friends | |
class | SVFIRWriter |
class | SVFIRReader |
OutStream & | operator<< (OutStream &o, const ICFGNode &node) |
Overloading operator << for dumping ICFG node ID. More... | |
Additional Inherited Members | |
Static Protected Member Functions inherited from SVF::SVFBaseNode | |
static bool | isICFGNodeKinds (GNodeK n) |
Helper functions to check node kinds. More... | |
static bool | isInterICFGNodeKind (GNodeK n) |
static bool | isSVFVarKind (GNodeK n) |
static bool | isValVarKinds (GNodeK n) |
static bool | isObjVarKinds (GNodeK n) |
static bool | isVFGNodeKinds (GNodeK n) |
static bool | isArgumentVFGNodeKinds (GNodeK n) |
static bool | isStmtVFGNodeKinds (GNodeK n) |
static bool | isPHIVFGNodeKinds (GNodeK n) |
static bool | isMRSVFGNodeKinds (GNodeK n) |
static bool | isMSSAPHISVFGNodeKinds (GNodeK n) |
Definition at line 54 of file ICFGNode.h.
typedef Set<const CallPE *> SVF::ICFGNode::CallPESet |
Definition at line 63 of file ICFGNode.h.
typedef ICFGEdge::ICFGEdgeSetTy::const_iterator SVF::ICFGNode::const_iterator |
Definition at line 62 of file ICFGNode.h.
typedef GNodeK SVF::ICFGNode::ICFGNodeK |
Definition at line 67 of file ICFGNode.h.
typedef ICFGEdge::ICFGEdgeSetTy::iterator SVF::ICFGNode::iterator |
Definition at line 61 of file ICFGNode.h.
typedef Set<const RetPE *> SVF::ICFGNode::RetPESet |
Definition at line 64 of file ICFGNode.h.
typedef std::list<const SVFStmt*> SVF::ICFGNode::SVFStmtList |
Definition at line 66 of file ICFGNode.h.
typedef std::list<const VFGNode*> SVF::ICFGNode::VFGNodeList |
Definition at line 65 of file ICFGNode.h.
|
inline |
|
inline |
|
inlinestatic |
Definition at line 135 of file ICFGNode.h.
|
inlinestatic |
Definition at line 130 of file ICFGNode.h.
|
inlinestatic |
Definition at line 140 of file ICFGNode.h.
|
inlinevirtual |
Return the basic block of this ICFGNode.
Definition at line 82 of file ICFGNode.h.
|
inlinevirtual |
Return the function of this ICFGNode.
Reimplemented in SVF::FunExitICFGNode, and SVF::FunEntryICFGNode.
Definition at line 76 of file ICFGNode.h.
|
inline |
Definition at line 117 of file ICFGNode.h.
|
inline |
Definition at line 104 of file ICFGNode.h.
|
virtual |
Reimplemented in SVF::RetICFGNode, SVF::CallICFGNode, SVF::FunExitICFGNode, SVF::FunEntryICFGNode, SVF::IntraICFGNode, and SVF::GlobalICFGNode.
Definition at line 61 of file ICFG.cpp.
Overloading operator << for dumping ICFG node ID.
Definition at line 90 of file ICFGNode.h.
|
friend |
Definition at line 57 of file ICFGNode.h.
|
friend |
Definition at line 56 of file ICFGNode.h.
|
protected |
Definition at line 149 of file ICFGNode.h.
|
protected |
Definition at line 148 of file ICFGNode.h.
|
protected |
Definition at line 151 of file ICFGNode.h.
|
protected |
Definition at line 150 of file ICFGNode.h.