Static Value-Flow Analysis
|
#include <SVFVariables.h>
Static Public Member Functions | |
static bool | classof (const SVFVar *) |
static bool | classof (const GenericPAGNodeTy *node) |
static bool | classof (const SVFBaseNode *node) |
Static Public Member Functions inherited from SVF::GenericNode< NodeTy, EdgeTy > | |
static bool | classof (const GenericNode< NodeTy, EdgeTy > *) |
static bool | classof (const SVFBaseNode *) |
Protected Member Functions | |
SVFVar (NodeID i, PNODEK k) | |
function containing this variable | |
Protected Attributes | |
const SVFValue * | value |
value of this SVFIR node | |
SVFStmt::KindToSVFStmtMapTy | InEdgeKindToSetMap |
SVFStmt::KindToSVFStmtMapTy | OutEdgeKindToSetMap |
bool | isPtr |
const SVFFunction * | func |
whether it is a pointer (top-level or address-taken) | |
Protected Attributes inherited from SVF::SVFBaseNode | |
NodeID | id |
Node ID. | |
GNodeK | nodeKind |
Node kind. | |
const SVFType * | type |
SVF type. | |
std::string | sourceLoc |
Source code information of this value. | |
Private Member Functions | |
void | addInEdge (SVFStmt *inEdge) |
add methods of the components | |
void | addOutEdge (SVFStmt *outEdge) |
bool | hasIncomingVariantGepEdge () const |
Has incoming VariantGepEdges. | |
Friends | |
class | SVFIRWriter |
class | SVFIRReader |
class | IRGraph |
class | SVFIR |
class | VFG |
OutStream & | operator<< (OutStream &o, const SVFVar &node) |
Overloading operator << for dumping SVFVar value. | |
Additional Inherited Members | |
Static Protected Member Functions inherited from SVF::SVFBaseNode | |
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 45 of file SVFVariables.h.
Definition at line 64 of file SVFVariables.h.
Nine kinds of SVFIR variables ValNode: llvm pointer value ObjNode: memory object RetNode: unique return node Vararg: unique node for vararg parameter GepValNode: temporary gep value node for field sensitivity GepValNode: temporary gep obj node for field sensitivity BaseObjNode: for field insensitive analysis DummyValNode and DummyObjNode: for non-llvm-value node
Definition at line 63 of file SVFVariables.h.
function containing this variable
Constructor to create an empty object (for deserialization)
Definition at line 74 of file SVFVariables.h.
Constructor.
SVFVar constructor
Definition at line 42 of file SVFVariables.cpp.
|
inlinevirtual |
|
inlineprivate |
add methods of the components
Definition at line 227 of file SVFVariables.h.
|
inlineprivate |
Definition at line 234 of file SVFVariables.h.
|
inlinestatic |
Definition at line 214 of file SVFVariables.h.
|
inlinestatic |
Definition at line 219 of file SVFVariables.h.
Definition at line 209 of file SVFVariables.h.
void SVFVar::dump | ( | ) | const |
|
inlinevirtual |
Return the function containing this SVFVar
Reimplemented in SVF::RetPN, and SVF::VarArgPN.
Definition at line 123 of file SVFVariables.h.
|
inline |
Get incoming SVFIR statements (edges)
Definition at line 148 of file SVFVariables.h.
|
inline |
|
inline |
|
inline |
Get outgoing SVFIR statements (edges)
Definition at line 153 of file SVFVariables.h.
|
inline |
|
inline |
Return type of the value.
Reimplemented from SVF::SVFBaseNode.
Reimplemented in SVF::ObjVar, SVF::GepValVar, and SVF::GepObjVar.
Definition at line 96 of file SVFVariables.h.
Get/has methods of the components.
Definition at line 84 of file SVFVariables.h.
Get name of the LLVM value.
Implemented in SVF::ValVar, SVF::ObjVar, SVF::GepValVar, SVF::GepObjVar, SVF::BaseObjVar, SVF::HeapObjVar, SVF::StackObjVar, SVF::RetPN, SVF::VarArgPN, SVF::DummyValVar, and SVF::DummyObjVar.
|
inline |
Has incoming SVFIR statements (edges)
Definition at line 158 of file SVFVariables.h.
|
inlineprivate |
Has incoming VariantGepEdges.
Definition at line 241 of file SVFVariables.h.
|
inline |
Has outgoing SVFIR statements (edges)
Definition at line 167 of file SVFVariables.h.
|
inline |
Definition at line 101 of file SVFVariables.h.
bool SVFVar::isConstDataOrAggDataButNotNullPtr | ( | ) | const |
Whether it is constant data, i.e., "0", "1.001", "str" or llvm's metadata, i.e., metadata !4087
Definition at line 464 of file SVFVariables.cpp.
|
virtual |
Whether this is an isolated node on the SVFIR graph.
Reimplemented in SVF::FunObjVar.
Definition at line 97 of file SVFVariables.cpp.
Whether it is a pointer.
Definition at line 106 of file SVFVariables.h.
|
virtual |
Reimplemented in SVF::ValVar, SVF::ObjVar, SVF::GepValVar, SVF::GepObjVar, SVF::BaseObjVar, SVF::HeapObjVar, SVF::StackObjVar, SVF::FunValVar, SVF::FunObjVar, SVF::GlobalValVar, SVF::ConstantDataValVar, SVF::BlackHoleVar, SVF::ConstantFPValVar, SVF::ConstantIntValVar, SVF::ConstantNullPtrValVar, SVF::GlobalObjVar, SVF::ConstantDataObjVar, SVF::ConstantFPObjVar, SVF::ConstantIntObjVar, SVF::ConstantNullPtrObjVar, SVF::RetPN, SVF::VarArgPN, SVF::DummyValVar, and SVF::DummyObjVar.
Definition at line 108 of file SVFVariables.cpp.
Definition at line 49 of file SVFVariables.h.
Overloading operator << for dumping SVFVar value.
Definition at line 264 of file SVFVariables.h.
Definition at line 50 of file SVFVariables.h.
|
friend |
Definition at line 48 of file SVFVariables.h.
|
friend |
Definition at line 47 of file SVFVariables.h.
Definition at line 51 of file SVFVariables.h.
|
protected |
whether it is a pointer (top-level or address-taken)
Definition at line 71 of file SVFVariables.h.
|
protected |
Definition at line 68 of file SVFVariables.h.
|
protected |
Definition at line 70 of file SVFVariables.h.
|
protected |
Definition at line 69 of file SVFVariables.h.
value of this SVFIR node
Definition at line 67 of file SVFVariables.h.