Static Value-Flow Analysis
|
#include <SVFVariables.h>
Static Public Member Functions | |
static bool | classof (const SVFVar *) |
Type checking support for LLVM-style RTTI. | |
static bool | classof (const GenericPAGNodeTy *node) |
static bool | classof (const SVFValue *node) |
![]() | |
static bool | classof (const GenericNode< NodeTy, EdgeTy > *) |
static bool | classof (const SVFValue *) |
Protected Member Functions | |
SVFVar (NodeID i, PNODEK k) | |
Empty constructor for deserialization. | |
Protected Attributes | |
SVFStmt::KindToSVFStmtMapTy | InEdgeKindToSetMap |
Maps tracking incoming and outgoing edges by kind. | |
SVFStmt::KindToSVFStmtMapTy | OutEdgeKindToSetMap |
![]() | |
NodeID | id |
Node ID. | |
GNodeK | nodeKind |
Node kind. | |
const SVFType * | type |
SVF type. | |
std::string | name |
std::string | sourceLoc |
Source code information of this value. | |
Private Member Functions | |
void | addInEdge (SVFStmt *inEdge) |
Edge management methods. | |
void | addOutEdge (SVFStmt *outEdge) |
bool | hasIncomingVariantGepEdge () const |
Check for incoming variable field GEP edges. | |
Friends | |
class | SVFIRWriter |
class | SVFIRReader |
class | SVFIRBuilder |
class | IRGraph |
class | SVFIR |
class | VFG |
OutStream & | operator<< (OutStream &o, const SVFVar &node) |
Stream operator overload for output. | |
Additional Inherited Members | |
![]() | |
static bool | isICFGNodeKinds (GNodeK n) |
Helper functions to check node kinds. | |
static bool | isInterICFGNodeKind (GNodeK n) |
static bool | isSVFVarKind (GNodeK n) |
static bool | isValVarKinds (GNodeK n) |
static bool | isConstantDataValVar (GNodeK n) |
static bool | isObjVarKinds (GNodeK n) |
static bool | isBaseObjVarKinds (GNodeK n) |
static bool | isConstantDataObjVarKinds (GNodeK n) |
static bool | isVFGNodeKinds (GNodeK n) |
static bool | isArgumentVFGNodeKinds (GNodeK n) |
static bool | isStmtVFGNodeKinds (GNodeK n) |
static bool | isPHIVFGNodeKinds (GNodeK n) |
static bool | isMRSVFGNodeKinds (GNodeK n) |
static bool | isMSSAPHISVFGNodeKinds (GNodeK n) |
Definition at line 48 of file SVFVariables.h.
Definition at line 68 of file SVFVariables.h.
Node kinds for SVFIR variables: ValNode - LLVM pointer value ObjNode - Memory object RetValNode - Function return value VarargNode - Variable argument parameter GepValNode - Temporary value for field-sensitive analysis GepObjNode - Temporary object for field-sensitive analysis BaseObjNode - Base object for field-insensitive analysis DummyValNode/DummyObjNode - Nodes for non-LLVM values
Definition at line 67 of file SVFVariables.h.
Standard constructor with ID, type and kind.
SVFVar constructor
Definition at line 44 of file SVFVariables.cpp.
|
inlinevirtual |
|
inlineprivate |
Edge management methods.
Definition at line 200 of file SVFVariables.h.
|
inlineprivate |
Definition at line 207 of file SVFVariables.h.
|
inlinestatic |
Definition at line 177 of file SVFVariables.h.
Definition at line 182 of file SVFVariables.h.
Type checking support for LLVM-style RTTI.
Definition at line 172 of file SVFVariables.h.
void SVFVar::dump | ( | ) | const |
Debug dump to console.
Definition at line 80 of file SVFVariables.cpp.
Get containing function, or null for globals/constants.
Reimplemented in SVF::ValVar, SVF::ArgValVar, SVF::GepValVar, SVF::BaseObjVar, SVF::GepObjVar, SVF::FunObjVar, SVF::FunValVar, SVF::RetValPN, and SVF::VarArgValPN.
Definition at line 106 of file SVFVariables.h.
|
inline |
Edge accessors and checkers.
Definition at line 113 of file SVFVariables.h.
|
inline |
|
inline |
Definition at line 149 of file SVFVariables.h.
|
inline |
Definition at line 118 of file SVFVariables.h.
|
inline |
Definition at line 156 of file SVFVariables.h.
|
inline |
Definition at line 163 of file SVFVariables.h.
Get string name of the represented LLVM value.
Implemented in SVF::ValVar, SVF::ObjVar, SVF::ArgValVar, SVF::GepValVar, SVF::BaseObjVar, SVF::GepObjVar, SVF::HeapObjVar, SVF::StackObjVar, SVF::RetValPN, SVF::VarArgValPN, SVF::DummyValVar, and SVF::DummyObjVar.
|
inline |
Definition at line 123 of file SVFVariables.h.
|
inlineprivate |
Check for incoming variable field GEP edges.
Definition at line 215 of file SVFVariables.h.
|
inline |
Definition at line 132 of file SVFVariables.h.
Check if this variable represents constant/aggregate data.
Reimplemented in SVF::GepValVar, SVF::BaseObjVar, SVF::GepObjVar, SVF::ConstAggValVar, SVF::ConstDataValVar, SVF::ConstAggObjVar, and SVF::ConstDataObjVar.
Definition at line 191 of file SVFVariables.h.
Check if this variable represents constant data/metadata but not null pointer.
Reimplemented in SVF::GepValVar, SVF::GepObjVar, SVF::ConstAggValVar, SVF::ConstDataValVar, SVF::BlackHoleValVar, SVF::ConstNullPtrValVar, SVF::ConstAggObjVar, SVF::ConstDataObjVar, and SVF::ConstNullPtrObjVar.
Definition at line 94 of file SVFVariables.h.
|
virtual |
Check if this node is isolated (no edges) in the SVFIR graph.
Reimplemented in SVF::FunObjVar.
Definition at line 61 of file SVFVariables.cpp.
Check if this variable represents a pointer.
Reimplemented in SVF::ArgValVar, SVF::GepValVar, SVF::GepObjVar, SVF::FunValVar, SVF::RetValPN, SVF::VarArgValPN, SVF::DummyValVar, and SVF::DummyObjVar.
Definition at line 87 of file SVFVariables.h.
|
virtual |
Check if this pointer is in an uncalled function.
Reimplemented in SVF::GepValVar, and SVF::GepObjVar.
Definition at line 49 of file SVFVariables.cpp.
|
virtual |
Get string representation.
Reimplemented in SVF::ValVar, SVF::ObjVar, SVF::ArgValVar, SVF::GepValVar, SVF::BaseObjVar, SVF::GepObjVar, SVF::HeapObjVar, SVF::StackObjVar, SVF::FunObjVar, SVF::FunValVar, SVF::GlobalValVar, SVF::ConstAggValVar, SVF::ConstDataValVar, SVF::BlackHoleValVar, SVF::ConstFPValVar, SVF::ConstIntValVar, SVF::ConstNullPtrValVar, SVF::GlobalObjVar, SVF::ConstAggObjVar, SVF::ConstDataObjVar, SVF::ConstFPObjVar, SVF::ConstIntObjVar, SVF::ConstNullPtrObjVar, SVF::RetValPN, SVF::VarArgValPN, SVF::DummyValVar, and SVF::DummyObjVar.
Definition at line 72 of file SVFVariables.cpp.
Definition at line 53 of file SVFVariables.h.
Stream operator overload for output.
Definition at line 237 of file SVFVariables.h.
Definition at line 54 of file SVFVariables.h.
|
friend |
Definition at line 52 of file SVFVariables.h.
Definition at line 51 of file SVFVariables.h.
Definition at line 50 of file SVFVariables.h.
Definition at line 55 of file SVFVariables.h.
|
protected |
Maps tracking incoming and outgoing edges by kind.
Definition at line 72 of file SVFVariables.h.
|
protected |
Definition at line 73 of file SVFVariables.h.