|
Static Value-Flow Analysis
|
#include <CallGraph.h>
Public Types | |
| enum | CEDGEK { CallRetEdge , TDForkEdge , TDJoinEdge , HareParForEdge } |
| typedef Set< const CallICFGNode * > | CallInstSet |
| typedef GenericNode< CallGraphNode, CallGraphEdge >::GEdgeSetTy | CallGraphEdgeSet |
Public Types inherited from SVF::GenericEdge< NodeTy > | |
| typedef NodeTy | NodeType |
| Node type. | |
| typedef u64_t | GEdgeFlag |
| typedef s64_t | GEdgeKind |
| typedef struct SVF::GenericEdge::equalGEdge | equalGEdge |
| Add the hash function for std::set (we also can overload operator< to implement this) | |
Static Public Member Functions | |
| static GEdgeFlag | makeEdgeFlagWithInvokeID (GEdgeKind k, CallSiteID cs) |
| Compute the unique edgeFlag value from edge kind and CallSiteID. | |
| static bool | classof (const CallGraphEdge *) |
| ClassOf. | |
| static bool | classof (const GenericPTACallGraphEdgeTy *edge) |
Private Attributes | |
| CallInstSet | directCalls |
| CallInstSet | indirectCalls |
| CallSiteID | csId |
Friends | |
| OutStream & | operator<< (OutStream &o, const CallGraphEdge &edge) |
| Overloading operator << for dumping ICFG node ID. | |
Additional Inherited Members | |
Static Protected Attributes inherited from SVF::GenericEdge< NodeTy > | |
| static constexpr unsigned char | EdgeKindMaskBits = 8 |
| We use the lower 8 bits to denote edge kind. | |
| static constexpr u64_t | EdgeKindMask = (~0ULL) >> (64 - EdgeKindMaskBits) |
Definition at line 51 of file CallGraph.h.
Definition at line 166 of file CallGraph.h.
Definition at line 55 of file CallGraph.h.
| Enumerator | |
|---|---|
| CallRetEdge | |
| TDForkEdge | |
| TDJoinEdge | |
| HareParForEdge | |
Definition at line 56 of file CallGraph.h.
|
inline |
Constructor.
Definition at line 68 of file CallGraph.h.
|
inlinevirtual |
| void CallGraphEdge::addDirectCallSite | ( | const CallICFGNode * | call | ) |
Add direct and indirect callsite.
Definition at line 53 of file CallGraph.cpp.
| void CallGraphEdge::addInDirectCallSite | ( | const CallICFGNode * | call | ) |
Definition at line 59 of file CallGraph.cpp.
|
inlinestatic |
|
inlinestatic |
Definition at line 147 of file CallGraph.h.
|
inline |
Iterators for direct and indirect callsites.
Definition at line 122 of file CallGraph.h.
|
inline |
Definition at line 126 of file CallGraph.h.
|
inline |
|
inline |
Definition at line 95 of file CallGraph.h.
|
inline |
Definition at line 103 of file CallGraph.h.
|
inline |
Definition at line 99 of file CallGraph.h.
|
inline |
Definition at line 107 of file CallGraph.h.
|
inline |
Definition at line 131 of file CallGraph.h.
|
inline |
Definition at line 135 of file CallGraph.h.
|
inline |
Definition at line 87 of file CallGraph.h.
|
inline |
Definition at line 91 of file CallGraph.h.
|
inlinestatic |
Compute the unique edgeFlag value from edge kind and CallSiteID.
Definition at line 77 of file CallGraph.h.
|
virtual |
Reimplemented in SVF::ThreadForkEdge, and SVF::ThreadJoinEdge.
Definition at line 67 of file CallGraph.cpp.
|
friend |
|
private |
Definition at line 65 of file CallGraph.h.
|
private |
Definition at line 63 of file CallGraph.h.
|
private |
Definition at line 64 of file CallGraph.h.