#include <CallGraph.h>
Definition at line 51 of file CallGraph.h.
◆ CallGraphEdgeSet
◆ CallInstSet
◆ CEDGEK
| Enumerator |
|---|
| CallRetEdge | |
| TDForkEdge | |
| TDJoinEdge | |
| HareParForEdge | |
Definition at line 56 of file CallGraph.h.
◆ CallGraphEdge()
Constructor.
Definition at line 68 of file CallGraph.h.
68 :
70 {
71 }
static GEdgeFlag makeEdgeFlagWithInvokeID(GEdgeKind k, CallSiteID cs)
Compute the unique edgeFlag value from edge kind and CallSiteID.
GenericEdge< CallGraphNode > GenericPTACallGraphEdgeTy
◆ ~CallGraphEdge()
| virtual SVF::CallGraphEdge::~CallGraphEdge |
( |
| ) |
|
|
inlinevirtual |
◆ addDirectCallSite()
| void CallGraphEdge::addDirectCallSite |
( |
const CallICFGNode * | call | ) |
|
Add direct and indirect callsite.
Definition at line 55 of file CallGraph.cpp.
56{
59}
const FunObjVar * getCalledFunction() const
◆ addInDirectCallSite()
| void CallGraphEdge::addInDirectCallSite |
( |
const CallICFGNode * | call | ) |
|
Definition at line 61 of file CallGraph.cpp.
62{
64 "not an indirect callsite??");
66}
CallInstSet indirectCalls
LLVM_NODISCARD bool isa(const Y &Val)
const ValVar * getForkedFun(const CallICFGNode *inst)
Return thread fork function.
◆ classof() [1/2]
ClassOf.
Definition at line 143 of file CallGraph.h.
144 {
145 return true;
146 }
◆ classof() [2/2]
◆ directCallsBegin()
| CallInstSet::const_iterator SVF::CallGraphEdge::directCallsBegin |
( |
| ) |
const |
|
inline |
Iterators for direct and indirect callsites.
Definition at line 122 of file CallGraph.h.
◆ directCallsEnd()
| CallInstSet::const_iterator SVF::CallGraphEdge::directCallsEnd |
( |
| ) |
const |
|
inline |
◆ getCallSiteID()
| CallSiteID SVF::CallGraphEdge::getCallSiteID |
( |
| ) |
const |
|
inline |
Get direct and indirect calls.
Definition at line 83 of file CallGraph.h.
◆ getDirectCalls() [1/2]
◆ getDirectCalls() [2/2]
| const CallInstSet & SVF::CallGraphEdge::getDirectCalls |
( |
| ) |
const |
|
inline |
◆ getIndirectCalls() [1/2]
◆ getIndirectCalls() [2/2]
| const CallInstSet & SVF::CallGraphEdge::getIndirectCalls |
( |
| ) |
const |
|
inline |
◆ indirectCallsBegin()
| CallInstSet::const_iterator SVF::CallGraphEdge::indirectCallsBegin |
( |
| ) |
const |
|
inline |
◆ indirectCallsEnd()
| CallInstSet::const_iterator SVF::CallGraphEdge::indirectCallsEnd |
( |
| ) |
const |
|
inline |
◆ isDirectCallEdge()
| bool SVF::CallGraphEdge::isDirectCallEdge |
( |
| ) |
const |
|
inline |
◆ isIndirectCallEdge()
| bool SVF::CallGraphEdge::isIndirectCallEdge |
( |
| ) |
const |
|
inline |
◆ makeEdgeFlagWithInvokeID()
Compute the unique edgeFlag value from edge kind and CallSiteID.
Definition at line 77 of file CallGraph.h.
78 {
80 }
static constexpr unsigned char EdgeKindMaskBits
◆ toString()
| const std::string CallGraphEdge::toString |
( |
| ) |
const |
|
virtual |
Reimplemented in SVF::ThreadForkEdge, and SVF::ThreadJoinEdge.
Definition at line 69 of file CallGraph.cpp.
70{
71 std::string str;
72 std::stringstream rawstr(str);
75 rawstr << "direct call";
76 else
77 rawstr << "indirect call";
79 return rawstr.str();
80}
bool isDirectCallEdge() const
CallSiteID getCallSiteID() const
Get direct and indirect calls.
◆ operator<<
Overloading operator << for dumping ICFG node ID.
Definition at line 157 of file CallGraph.h.
158 {
159 o << edge.toString();
160 return o;
161 }
◆ csId
◆ directCalls
◆ indirectCalls
The documentation for this class was generated from the following files: