61 typedef ICFGEdge::ICFGEdgeSetTy::iterator
iterator;
123 virtual const std::string
toString()
const;
184 const std::string
toString()
const override;
188 return "Global ICFGNode";
208 fun =
b->getFunction();
230 const std::string
toString()
const override;
340 const std::string
toString()
const override;
411 const std::string
toString()
const override;
446 const std::string&
fnv)
451 fun =
b->getFunction();
586 const std::string
toString()
const override;
665 const std::string
toString()
const override;
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 ValVar * getArgument(u32_t ArgNo) const
Parameter operations.
const SVFVar * getVtablePtr() const
std::vector< const ValVar * > ActualParmNodeVec
static bool classof(const GenericICFGNodeTy *node)
static bool classof(const SVFBaseNode *node)
void addActualParms(const ValVar *ap)
Add actual parameters.
const RetICFGNode * getRetICFGNode() const
Return callsite.
static bool classof(const InterICFGNode *node)
const std::string getSourceLoc() const override
SVFVar * vtabPtr
is virtual call inst
u32_t getNumArgOperands() const
void setRetICFGNode(const RetICFGNode *r)
Return callsite.
bool isIndirectCall() const
Return true if this is an indirect call.
const SVFFunction * getCalledFunction() const
s32_t virtualFunIdx
virtual table pointer
const ActualParmNodeVec & getActualParms() const
Return the set of actual parameters.
bool isVirtualCall() const
void setVtablePtr(SVFVar *v)
const SVFFunction * getCaller() const
Return callsite.
std::string funNameOfVcall
virtual function index of the virtual table(s) at a virtual call
const SVFBasicBlock * getParent() const
Return Basic Block.
bool isvararg
called function
s32_t getFunIdxInVtable() const
static bool classof(const ICFGNode *node)
const std::string & getFunNameOfVirtualCall() const
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:
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
const FormalParmNodeVec & getFormalParms() const
Return the set of formal parameters.
void addFormalParms(const SVFVar *fp)
Add formal parameters.
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 std::string getSourceLoc() const override
const SVFVar * getFormalRet() const
Return formal return parameter.
static bool classof(const FunEntryICFGNode *)
Methods for support type inquiry through isa, cast, and dyn_cast:
static bool classof(const GenericICFGNodeTy *node)
const SVFFunction * getFun() const override
Return function.
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.
virtual const SVFFunction * getFun() const
Return the function of this ICFGNode.
static bool classof(const ICFGNode *)
Set< const RetPE * > RetPESet
std::list< const VFGNode * > VFGNodeList
ICFGEdge::ICFGEdgeSetTy::iterator iterator
static bool classof(const GenericICFGNodeTy *node)
void addSVFStmt(const SVFStmt *edge)
const VFGNodeList & getVFGNodes() const
virtual const SVFBasicBlock * getBB() const
Return the basic block of this ICFGNode.
std::list< const SVFStmt * > SVFStmtList
Set< const CallPE * > CallPESet
ICFGNode(NodeID i, GNodeK k)
Constructor.
ICFGEdge::ICFGEdgeSetTy::const_iterator const_iterator
static bool classof(const SVFBaseNode *node)
virtual const std::string toString() const
const SVFStmtList & getSVFStmts() 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:
const SVFVar * getActualRet() const
Return actual return parameter.
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
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.
const CallICFGNode * getCallICFGNode() 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
llvm::IRBuilder IRBuilder
GenericNode< ICFGNode, ICFGEdge > GenericICFGNodeTy