Static Value-Flow Analysis
|
#include <ICFGNode.h>
Public Types | |
typedef std::vector< const SVFVar * > | ActualParmNodeVec |
Public Types inherited from SVF::ICFGNode | |
typedef ICFGEdge::ICFGEdgeSetTy::iterator | iterator |
typedef ICFGEdge::ICFGEdgeSetTy::const_iterator | const_iterator |
typedef Set< const CallPE * > | CallPESet |
typedef Set< const RetPE * > | RetPESet |
typedef std::list< const VFGNode * > | VFGNodeList |
typedef std::list< const SVFStmt * > | SVFStmtList |
typedef GNodeK | ICFGNodeK |
Public Types inherited from SVF::GenericNode< NodeTy, EdgeTy > | |
typedef NodeTy | NodeType |
typedef EdgeTy | EdgeType |
typedef OrderedSet< EdgeType *, typename EdgeType::equalGEdge > | GEdgeSetTy |
Edge kind. More... | |
typedef GEdgeSetTy::iterator | iterator |
typedef GEdgeSetTy::const_iterator | const_iterator |
Public Types inherited from SVF::SVFBaseNode | |
enum | GNodeK { IntraBlock , GlobalBlock , FunEntryBlock , FunExitBlock , FunCallBlock , FunRetBlock , ValNode , GepValNode , RetNode , VarargNode , DummyValNode , ObjNode , GepObjNode , FIObjNode , DummyObjNode , Cmp , BinaryOp , UnaryOp , Branch , DummyVProp , NPtr , FRet , ARet , AParm , FParm , Addr , Copy , Gep , Store , Load , TPhi , TIntraPhi , TInterPhi , FPIN , FPOUT , APIN , APOUT , MPhi , MIntraPhi , MInterPhi , CallNodeKd , CDNodeKd , CFLNodeKd , CHNodeKd , ConstraintNodeKd , TCTNodeKd , DCHNodeKd , OtherKd } |
Public Member Functions | |
CallICFGNode (NodeID id, const SVFBasicBlock *b, const SVFType *ty, const SVFFunction *cf, bool iv, bool ivc, s32_t vfi, const std::string &fnv) | |
const RetICFGNode * | getRetICFGNode () const |
Return callsite. More... | |
void | setRetICFGNode (const RetICFGNode *r) |
Return callsite. More... | |
const SVFFunction * | getCaller () const |
Return callsite. More... | |
const SVFBasicBlock * | getParent () const |
Return Basic Block. More... | |
bool | isIndirectCall () const |
Return true if this is an indirect call. More... | |
const ActualParmNodeVec & | getActualParms () const |
Return the set of actual parameters. More... | |
void | addActualParms (const SVFVar *ap) |
Add actual parameters. More... | |
const SVFVar * | getArgument (u32_t ArgNo) const |
Parameter operations. More... | |
u32_t | arg_size () const |
bool | arg_empty () const |
u32_t | getNumArgOperands () const |
const SVFFunction * | getCalledFunction () const |
bool | isVarArg () const |
bool | isVirtualCall () const |
void | setVtablePtr (SVFVar *v) |
const SVFVar * | getVtablePtr () const |
s32_t | getFunIdxInVtable () const |
const std::string & | getFunNameOfVirtualCall () const |
const std::string | toString () const override |
const std::string | getSourceLoc () const override |
Public Member Functions inherited from SVF::InterICFGNode | |
InterICFGNode (NodeID id, ICFGNodeK k) | |
Constructor. More... | |
Public Member Functions inherited from SVF::ICFGNode | |
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... | |
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) |
const std::string | valueOnlyToString () const |
Static Public Member Functions | |
static bool | classof (const CallICFGNode *) |
Methods for support type inquiry through isa, cast, and dyn_cast: More... | |
static bool | classof (const ICFGNode *node) |
static bool | classof (const InterICFGNode *node) |
static bool | classof (const GenericICFGNodeTy *node) |
static bool | classof (const SVFBaseNode *node) |
Static Public Member Functions inherited from SVF::InterICFGNode | |
static bool | classof (const InterICFGNode *) |
Methods for support type inquiry through isa, cast, and dyn_cast: More... | |
static bool | classof (const ICFGNode *node) |
static bool | classof (const GenericICFGNodeTy *node) |
static bool | classof (const SVFBaseNode *node) |
Static Public Member Functions inherited from SVF::ICFGNode | |
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 Member Functions | |
CallICFGNode (NodeID id) | |
the function name of this virtual call More... | |
Protected Attributes | |
const RetICFGNode * | ret |
ActualParmNodeVec | APNodes |
const SVFFunction * | calledFunc |
arguments More... | |
bool | isvararg |
called function More... | |
bool | isVirCallInst |
is variable argument More... | |
SVFVar * | vtabPtr |
is virtual call inst More... | |
s32_t | virtualFunIdx |
virtual table pointer More... | |
std::string | funNameOfVcall |
virtual function index of the virtual table(s) at a virtual call More... | |
Protected Attributes inherited from SVF::ICFGNode | |
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 |
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) |
Call ICFGNode containing a set of ActualParmVFGNodes at a callsite
Definition at line 422 of file ICFGNode.h.
typedef std::vector<const SVFVar *> SVF::CallICFGNode::ActualParmNodeVec |
Definition at line 428 of file ICFGNode.h.
|
inlineprotected |
the function name of this virtual call
Constructor to create empty CallICFGNode (for SVFIRReader/deserialization)
Definition at line 441 of file ICFGNode.h.
|
inline |
Definition at line 444 of file ICFGNode.h.
|
inline |
|
inline |
Definition at line 509 of file ICFGNode.h.
|
inline |
Definition at line 505 of file ICFGNode.h.
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 560 of file ICFGNode.h.
|
inlinestatic |
Definition at line 575 of file ICFGNode.h.
|
inlinestatic |
Definition at line 565 of file ICFGNode.h.
|
inlinestatic |
Definition at line 570 of file ICFGNode.h.
|
inlinestatic |
Definition at line 580 of file ICFGNode.h.
|
inline |
Return the set of actual parameters.
Definition at line 488 of file ICFGNode.h.
Parameter operations.
Definition at line 500 of file ICFGNode.h.
|
inline |
Definition at line 518 of file ICFGNode.h.
|
inline |
Return callsite.
Definition at line 470 of file ICFGNode.h.
|
inline |
Definition at line 544 of file ICFGNode.h.
|
inline |
Definition at line 551 of file ICFGNode.h.
|
inline |
Definition at line 514 of file ICFGNode.h.
|
inline |
Return Basic Block.
Definition at line 476 of file ICFGNode.h.
|
inline |
Return callsite.
Definition at line 457 of file ICFGNode.h.
|
inlineoverridevirtual |
Reimplemented from SVF::SVFBaseNode.
Definition at line 588 of file ICFGNode.h.
|
inline |
Definition at line 537 of file ICFGNode.h.
|
inline |
Return true if this is an indirect call.
Definition at line 482 of file ICFGNode.h.
|
inline |
Definition at line 523 of file ICFGNode.h.
|
inline |
Definition at line 527 of file ICFGNode.h.
|
inline |
|
inline |
Definition at line 532 of file ICFGNode.h.
|
overridevirtual |
Reimplemented from SVF::ICFGNode.
Definition at line 131 of file ICFG.cpp.
|
friend |
Definition at line 425 of file ICFGNode.h.
|
friend |
Definition at line 424 of file ICFGNode.h.
|
protected |
Definition at line 432 of file ICFGNode.h.
|
protected |
arguments
Definition at line 433 of file ICFGNode.h.
|
protected |
virtual function index of the virtual table(s) at a virtual call
Definition at line 438 of file ICFGNode.h.
|
protected |
called function
Definition at line 434 of file ICFGNode.h.
|
protected |
is variable argument
Definition at line 435 of file ICFGNode.h.
|
protected |
Definition at line 431 of file ICFGNode.h.
|
protected |
virtual table pointer
Definition at line 437 of file ICFGNode.h.
|
protected |
is virtual call inst
Definition at line 436 of file ICFGNode.h.