|
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 (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 |
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 1101 of file SVFStatements.h.
| typedef std::vector<std::pair<const ICFGNode*, s32_t> > SVF::BranchStmt::SuccAndCondPairVec |
Definition at line 1105 of file SVFStatements.h.
|
private |
place holder
|
inline |
constructor
Definition at line 1137 of file SVFStatements.h.
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 1122 of file SVFStatements.h.
|
inlinestatic |
Definition at line 1130 of file SVFStatements.h.
Definition at line 1126 of file SVFStatements.h.
Definition at line 1149 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 1164 of file SVFStatements.h.
|
private |
place holder, use getOpVarID(pos) instead
|
private |
place holder, not allowed
Definition at line 1172 of file SVFStatements.h.
Definition at line 1176 of file SVFStatements.h.
|
inline |
Definition at line 1168 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.
Definition at line 1117 of file SVFStatements.h.
Definition at line 1116 of file SVFStatements.h.
|
private |
Definition at line 1115 of file SVFStatements.h.