|
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 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 208 of file SVFVariables.h.
|
inlineprivate |
Definition at line 215 of file SVFVariables.h.
|
inlinestatic |
Definition at line 185 of file SVFVariables.h.
Definition at line 190 of file SVFVariables.h.
Type checking support for LLVM-style RTTI.
Definition at line 180 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 114 of file SVFVariables.h.
|
inline |
Edge accessors and checkers.
Definition at line 121 of file SVFVariables.h.
|
inline |
|
inline |
Definition at line 157 of file SVFVariables.h.
|
inlineprotected |
Definition at line 75 of file SVFVariables.h.
|
inlineprotected |
Definition at line 81 of file SVFVariables.h.
|
inline |
Definition at line 126 of file SVFVariables.h.
|
inline |
Definition at line 164 of file SVFVariables.h.
|
inline |
Definition at line 171 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 131 of file SVFVariables.h.
|
inlineprivate |
Check for incoming variable field GEP edges.
Definition at line 223 of file SVFVariables.h.
|
inline |
Definition at line 140 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 199 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 102 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 95 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 55 of file SVFVariables.h.
Definition at line 52 of file SVFVariables.h.
Stream operator overload for output.
Definition at line 245 of file SVFVariables.h.
Definition at line 53 of file SVFVariables.h.
|
friend |
Definition at line 51 of file SVFVariables.h.
Definition at line 54 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.