|
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 Public Member Functions inherited from SVF::GenericNode< NodeTy, EdgeTy > | |
| static bool | classof (const GenericNode< NodeTy, EdgeTy > *) |
| static bool | classof (const SVFValue *) |
Protected Member Functions | |
| const SVFStmt::KindToSVFStmtMapTy & | getInEdgeKindToSetMap () const |
| const SVFStmt::KindToSVFStmtMapTy & | getOutEdgeKindToSetMap () const |
Protected Attributes | |
| SVFStmt::KindToSVFStmtMapTy | InEdgeKindToSetMap |
| Maps tracking incoming and outgoing edges by kind. | |
| SVFStmt::KindToSVFStmtMapTy | OutEdgeKindToSetMap |
Protected Attributes inherited from SVF::SVFValue | |
| 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 | SVFIRBuilder |
| class | IRGraph |
| class | SVFIR |
| class | VFG |
| class | GraphDBClient |
| OutStream & | operator<< (OutStream &o, const SVFVar &node) |
| Stream operator overload for output. | |
Additional Inherited Members | |
Static Protected Member Functions inherited from SVF::SVFValue | |
| 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 54 of file SVFVariables.h.
Definition at line 74 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 73 of file SVFVariables.h.
Standard constructor with ID, type and kind.
SVFVar constructor
Definition at line 45 of file SVFVariables.cpp.
|
inlinevirtual |
|
inlineprivate |
Edge management methods.
Definition at line 214 of file SVFVariables.h.
|
inlineprivate |
Definition at line 221 of file SVFVariables.h.
|
inlinestatic |
Definition at line 191 of file SVFVariables.h.
Definition at line 196 of file SVFVariables.h.
Type checking support for LLVM-style RTTI.
Definition at line 186 of file SVFVariables.h.
| void SVFVar::dump | ( | ) | const |
Debug dump to console.
Definition at line 81 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 120 of file SVFVariables.h.
|
inline |
Edge accessors and checkers.
Definition at line 127 of file SVFVariables.h.
|
inline |
Edge iterators.
Definition at line 156 of file SVFVariables.h.
|
inline |
Definition at line 163 of file SVFVariables.h.
|
inlineprotected |
Definition at line 81 of file SVFVariables.h.
|
inlineprotected |
Definition at line 87 of file SVFVariables.h.
|
inline |
Definition at line 132 of file SVFVariables.h.
|
inline |
Definition at line 170 of file SVFVariables.h.
|
inline |
Definition at line 177 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, SVF::IntrinsicValVar, SVF::AsmPCValVar, and SVF::DummyObjVar.
|
inline |
Definition at line 137 of file SVFVariables.h.
|
inlineprivate |
Check for incoming variable field GEP edges.
Definition at line 229 of file SVFVariables.h.
|
inline |
Definition at line 146 of file SVFVariables.h.
Check if this variable represents constant/aggregate data.
Reimplemented in SVF::GepValVar, SVF::BaseObjVar, SVF::GepObjVar, SVF::ConstDataValVar, and SVF::ConstDataObjVar.
Definition at line 205 of file SVFVariables.h.
Check if this variable represents constant data/metadata but not null pointer.
Reimplemented in SVF::GepValVar, SVF::GepObjVar, SVF::ConstDataValVar, SVF::BlackHoleValVar, SVF::ConstNullPtrValVar, SVF::ConstDataObjVar, and SVF::ConstNullPtrObjVar.
Definition at line 108 of file SVFVariables.h.
|
virtual |
Check if this node is isolated (no edges) in the SVFIR graph.
Reimplemented in SVF::FunObjVar.
Definition at line 62 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 101 of file SVFVariables.h.
|
virtual |
Check if this pointer is in an uncalled function.
Reimplemented in SVF::GepValVar, and SVF::GepObjVar.
Definition at line 50 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::ConstDataValVar, SVF::BlackHoleValVar, SVF::ConstFPValVar, SVF::ConstIntValVar, SVF::ConstNullPtrValVar, SVF::GlobalObjVar, SVF::ConstDataObjVar, SVF::ConstFPObjVar, SVF::ConstIntObjVar, SVF::ConstNullPtrObjVar, SVF::RetValPN, SVF::VarArgValPN, SVF::DummyValVar, SVF::IntrinsicValVar, SVF::AsmPCValVar, and SVF::DummyObjVar.
Definition at line 73 of file SVFVariables.cpp.
Definition at line 61 of file SVFVariables.h.
Definition at line 58 of file SVFVariables.h.
Stream operator overload for output.
Definition at line 251 of file SVFVariables.h.
Definition at line 59 of file SVFVariables.h.
|
friend |
Definition at line 57 of file SVFVariables.h.
Definition at line 60 of file SVFVariables.h.
|
protected |
Maps tracking incoming and outgoing edges by kind.
Definition at line 78 of file SVFVariables.h.
|
protected |
Definition at line 79 of file SVFVariables.h.