Static Value-Flow Analysis
|
#include <SVFStatements.h>
Public Types | |
typedef std::vector< std::pair< const ICFGNode *, s32_t > > | SuccAndCondPairVec |
Public Types inherited from SVF::SVFStmt | |
enum | PEDGEK { Addr , Copy , Store , Load , Call , Ret , Gep , Phi , Select , Cmp , BinaryOp , UnaryOp , Branch , ThreadFork , ThreadJoin } |
typedef GenericNode< SVFVar, SVFStmt >::GEdgeSetTy | SVFStmtSetTy |
typedef Map< EdgeID, SVFStmtSetTy > | PAGEdgeToSetMapTy |
typedef PAGEdgeToSetMapTy | KindToSVFStmtMapTy |
typedef SVFStmtSetTy | PAGEdgeSetTy |
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 bool | classof (const BranchStmt *) |
Methods for support type inquiry through isa, cast, and dyn_cast: | |
static bool | classof (const SVFStmt *edge) |
static bool | classof (const GenericPAGEdgeTy *edge) |
Static Public Member Functions inherited from SVF::SVFStmt | |
static bool | classof (const SVFStmt *) |
ClassOf. | |
static bool | classof (const GenericPAGEdgeTy *edge) |
static GEdgeFlag | makeEdgeFlagWithAddionalOpnd (GEdgeKind k, const SVFVar *var) |
static GEdgeFlag | makeEdgeFlagWithCallInst (GEdgeKind k, const ICFGNode *cs) |
static GEdgeFlag | makeEdgeFlagWithStoreInst (GEdgeKind k, const ICFGNode *store) |
Private Member Functions | |
BranchStmt () | |
Constructs empty BranchStmt (for SVFIRReader/serialization) | |
BranchStmt (const BranchStmt &) | |
place holder | |
void | operator= (const BranchStmt &) |
place holder | |
SVFVar * | getSrcNode () |
place holder, not allowed | |
SVFVar * | getDstNode () |
place holder, not allowed | |
NodeID | getSrcID () |
place holder, use getOpVarID(pos) instead | |
NodeID | getDstID () |
place holder, use getResID() instead | |
Private Attributes | |
SuccAndCondPairVec | successors |
const SVFVar * | cond |
const SVFVar * | brInst |
Friends | |
class | SVFIRWriter |
class | SVFIRReader |
Additional Inherited Members | |
Static Public Attributes inherited from SVF::SVFStmt | |
static u32_t | totalEdgeNum |
Total edge number. | |
Protected Member Functions inherited from SVF::SVFStmt | |
SVFStmt (GEdgeFlag k) | |
Private constructor for reading SVFIR from file without side-effect. | |
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) |
Branch statements including if/else and switch
Definition at line 1160 of file SVFStatements.h.
typedef std::vector<std::pair<const ICFGNode*, s32_t> > SVF::BranchStmt::SuccAndCondPairVec |
Definition at line 1166 of file SVFStatements.h.
|
inlineprivate |
Constructs empty BranchStmt (for SVFIRReader/serialization)
Definition at line 1170 of file SVFStatements.h.
|
private |
place holder
|
inline |
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 1185 of file SVFStatements.h.
|
inlinestatic |
Definition at line 1193 of file SVFStatements.h.
Definition at line 1189 of file SVFStatements.h.
Definition at line 1212 of file SVFStatements.h.
Return the condition.
Definition at line 322 of file SVFStatements.cpp.
|
private |
place holder, use getResID() instead
|
private |
place holder, not allowed
|
inline |
For example if(c) {stmt1} else {stmt2} successor(0): stmt1, 1 successor(1): stmt2, 0 For example switch(c) case 0: {stmt1; break;} case 1: {stmt2; break;} default {stmt3: break} successor(0): stmt1, 0 successor(1): stmt2, 1 successor(3): stmt3, -1 Successors of this branch statement
Definition at line 1227 of file SVFStatements.h.
|
private |
place holder, use getOpVarID(pos) instead
|
private |
place holder, not allowed
Definition at line 1235 of file SVFStatements.h.
Definition at line 1239 of file SVFStatements.h.
|
inline |
Definition at line 1231 of file SVFStatements.h.
bool BranchStmt::isConditional | ( | ) | const |
The branch is conditional if cond is not a null value.
Definition at line 317 of file SVFStatements.cpp.
bool BranchStmt::isUnconditional | ( | ) | const |
The branch is unconditional if cond is a null value.
Definition at line 312 of file SVFStatements.cpp.
|
private |
place holder
|
overridevirtual |
Reimplemented from SVF::SVFStmt.
Definition at line 171 of file SVFStatements.cpp.
|
friend |
Definition at line 1163 of file SVFStatements.h.
|
friend |
Definition at line 1162 of file SVFStatements.h.
Definition at line 1180 of file SVFStatements.h.
Definition at line 1179 of file SVFStatements.h.
|
private |
Definition at line 1178 of file SVFStatements.h.