61 typedef ICFGEdge::ICFGEdgeSetTy::iterator
iterator;
188 return "Global ICFGNode";
208 fun =
b->getFunction();
451 fun =
b->getFunction();
459 assert(
ret &&
"RetICFGNode not set?");
547 assert(
virtualFunIdx >=0 &&
"virtual function idx is less than 0? not set yet?");
const SVFFunction * getCalledFunction() const
const std::string toString() const override
bool isVirCallInst
is variable argument
ActualParmNodeVec APNodes
CallICFGNode(NodeID id, const SVFBasicBlock *b, const SVFType *ty, const SVFFunction *cf, bool iv, bool ivc, s32_t vfi, const std::string &fnv)
const SVFFunction * getCaller() const
Return callsite.
static bool classof(const GenericICFGNodeTy *node)
static bool classof(const SVFBaseNode *node)
const std::string & getFunNameOfVirtualCall() const
static bool classof(const InterICFGNode *node)
const SVFVar * getVtablePtr() const
const std::string getSourceLoc() const override
SVFVar * vtabPtr
is virtual call inst
u32_t getNumArgOperands() const
void setRetICFGNode(const RetICFGNode *r)
Return callsite.
const SVFBasicBlock * getParent() const
Return Basic Block.
bool isIndirectCall() const
Return true if this is an indirect call.
std::vector< const SVFVar * > ActualParmNodeVec
s32_t virtualFunIdx
virtual table pointer
void addActualParms(const SVFVar *ap)
Add actual parameters.
const ActualParmNodeVec & getActualParms() const
Return the set of actual parameters.
bool isVirtualCall() const
void setVtablePtr(SVFVar *v)
std::string funNameOfVcall
virtual function index of the virtual table(s) at a virtual call
bool isvararg
called function
s32_t getFunIdxInVtable() const
static bool classof(const ICFGNode *node)
const RetICFGNode * getRetICFGNode() const
Return callsite.
const SVFFunction * calledFunc
arguments
CallICFGNode(NodeID id)
the function name of this virtual call
static bool classof(const CallICFGNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
const SVFVar * getArgument(u32_t ArgNo) const
Parameter operations.
const FormalParmNodeVec & getFormalParms() const
Return the set of formal parameters.
std::vector< const SVFVar * > FormalParmNodeVec
static bool classof(const InterICFGNode *node)
FormalParmNodeVec FPNodes
static bool classof(const SVFBaseNode *node)
static bool classof(const ICFGNode *node)
static bool classof(const GenericICFGNodeTy *node)
const std::string getSourceLoc() const override
FunEntryICFGNode(NodeID id)
Constructor to create empty FunEntryICFGNode (for SVFIRReader/deserialization)
const SVFFunction * getFun() const override
Return function.
static bool classof(const FunEntryICFGNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
const std::string toString() const override
void addFormalParms(const SVFVar *fp)
Add formal parameters.
const SVFVar * getFormalRet() const
Return formal return parameter.
void addFormalRet(const SVFVar *fr)
Add formal return parameter.
static bool classof(const SVFBaseNode *node)
const std::string toString() const override
FunExitICFGNode(NodeID id)
Constructor to create empty FunExitICFGNode (for SVFIRReader/deserialization)
static bool classof(const InterICFGNode *node)
const SVFFunction * getFun() const override
Return function.
const std::string getSourceLoc() const override
static bool classof(const FunEntryICFGNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
static bool classof(const GenericICFGNodeTy *node)
static bool classof(const ICFGNode *node)
GlobalICFGNode(NodeID id)
static bool classof(const GlobalICFGNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
static bool classof(const ICFGNode *node)
const std::string getSourceLoc() const override
const std::string toString() const override
static bool classof(const GenericICFGNodeTy *node)
friend OutStream & operator<<(OutStream &o, const ICFGNode &node)
Overloading operator << for dumping ICFG node ID.
static bool classof(const ICFGNode *)
Set< const RetPE * > RetPESet
std::list< const VFGNode * > VFGNodeList
ICFGEdge::ICFGEdgeSetTy::iterator iterator
const SVFStmtList & getSVFStmts() const
static bool classof(const GenericICFGNodeTy *node)
void addSVFStmt(const SVFStmt *edge)
std::list< const SVFStmt * > SVFStmtList
Set< const CallPE * > CallPESet
const VFGNodeList & getVFGNodes() const
ICFGNode(NodeID i, GNodeK k)
Constructor.
ICFGEdge::ICFGEdgeSetTy::const_iterator const_iterator
virtual const SVFFunction * getFun() const
Return the function of this ICFGNode.
virtual const SVFBasicBlock * getBB() const
Return the basic block of this ICFGNode.
static bool classof(const SVFBaseNode *node)
virtual const std::string toString() const
void addVFGNode(const VFGNode *vfgNode)
InterICFGNode(NodeID id, ICFGNodeK k)
Constructor.
static bool classof(const InterICFGNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
static bool classof(const GenericICFGNodeTy *node)
static bool classof(const SVFBaseNode *node)
static bool classof(const ICFGNode *node)
static bool classof(const GenericICFGNodeTy *node)
static bool classof(const IntraICFGNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
IntraICFGNode(NodeID id)
Constructor to create empty IntraICFGNode (for SVFIRReader/deserialization)
IntraICFGNode(NodeID id, const SVFBasicBlock *b, bool isReturn)
static bool classof(const ICFGNode *node)
const std::string toString() const override
const CallICFGNode * callBlockNode
static bool classof(const RetICFGNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
RetICFGNode(NodeID id)
Constructor to create empty RetICFGNode (for SVFIRReader/deserialization)
static bool classof(const SVFBaseNode *node)
static bool classof(const ICFGNode *node)
const std::string toString() const override
const std::string getSourceLoc() const override
const SVFVar * getActualRet() const
Return actual return parameter.
const CallICFGNode * getCallICFGNode() const
static bool classof(const GenericICFGNodeTy *node)
RetICFGNode(NodeID id, CallICFGNode *cb)
static bool classof(const InterICFGNode *node)
void addActualRet(const SVFVar *ar)
Add actual return parameter.
virtual const SVFType * getType() const
const SVFType * type
SVF type.
GNodeK getNodeKind() const
Get node kind.
static bool isICFGNodeKinds(GNodeK n)
Helper functions to check node kinds.
static bool isInterICFGNodeKind(GNodeK n)
virtual const std::string getSourceLoc() const
virtual const std::string getSourceLoc() const
std::unordered_set< Key, Hash, KeyEqual, Allocator > Set
GenericNode< ICFGNode, ICFGEdge > GenericICFGNodeTy