|
| HeapObjVar (const SVFFunction *func, const SVFType *svfType, NodeID i, const MemObj *mem, PNODEK ty=HeapObjNode) |
| Constructor.
|
|
const std::string | getValueName () const |
| Return name of a LLVM value.
|
|
virtual const std::string | toString () const |
|
| BaseObjVar (const SVFValue *val, NodeID i, const MemObj *mem, PNODEK ty=BaseObjNode) |
| Constructor.
|
|
const MemObj * | getMemObj () const |
| Return memory object.
|
|
virtual const SVFType * | getType () const |
| Return type of the value.
|
|
| SVFVar (const SVFValue *val, NodeID i, PNODEK k) |
| Constructor.
|
|
virtual | ~SVFVar () |
| Destructor.
|
|
const SVFValue * | getValue () const |
| Get/has methods of the components.
|
|
bool | hasValue () const |
|
virtual bool | isPointer () const |
| Whether it is a pointer.
|
|
bool | isConstDataOrAggDataButNotNullPtr () const |
|
virtual bool | isIsolatedNode () const |
| Whether this is an isolated node on the SVFIR graph.
|
|
virtual const SVFFunction * | getFunction () const |
|
SVFStmt::SVFStmtSetTy & | getIncomingEdges (SVFStmt::PEDGEK kind) |
| Get incoming SVFIR statements (edges)
|
|
SVFStmt::SVFStmtSetTy & | getOutgoingEdges (SVFStmt::PEDGEK kind) |
| Get outgoing SVFIR statements (edges)
|
|
bool | hasIncomingEdges (SVFStmt::PEDGEK kind) const |
| Has incoming SVFIR statements (edges)
|
|
bool | hasOutgoingEdges (SVFStmt::PEDGEK kind) const |
| Has outgoing SVFIR statements (edges)
|
|
SVFStmt::SVFStmtSetTy::iterator | getIncomingEdgesBegin (SVFStmt::PEDGEK kind) const |
| Get incoming SVFStmt iterator.
|
|
SVFStmt::SVFStmtSetTy::iterator | getIncomingEdgesEnd (SVFStmt::PEDGEK kind) const |
| Get incoming SVFStmt iterator.
|
|
SVFStmt::SVFStmtSetTy::iterator | getOutgoingEdgesBegin (SVFStmt::PEDGEK kind) const |
| Get outgoing SVFStmt iterator.
|
|
SVFStmt::SVFStmtSetTy::iterator | getOutgoingEdgesEnd (SVFStmt::PEDGEK kind) const |
| Get outgoing SVFStmt iterator.
|
|
void | dump () const |
| Dump to console for debugging.
|
|
| GenericNode (NodeID i, GNodeK k) |
| Constructor.
|
|
virtual | ~GenericNode () |
| Destructor.
|
|
bool | hasIncomingEdge () const |
| Has incoming/outgoing edge set.
|
|
bool | hasOutgoingEdge () const |
|
iterator | OutEdgeBegin () |
| iterators
|
|
iterator | OutEdgeEnd () |
|
iterator | InEdgeBegin () |
|
iterator | InEdgeEnd () |
|
const_iterator | OutEdgeBegin () const |
|
const_iterator | OutEdgeEnd () const |
|
const_iterator | InEdgeBegin () const |
|
const_iterator | InEdgeEnd () const |
|
virtual iterator | directOutEdgeBegin () |
| Iterators used for SCC detection, overwrite it in child class if necessary.
|
|
virtual iterator | directOutEdgeEnd () |
|
virtual iterator | directInEdgeBegin () |
|
virtual iterator | directInEdgeEnd () |
|
virtual const_iterator | directOutEdgeBegin () const |
|
virtual const_iterator | directOutEdgeEnd () const |
|
virtual const_iterator | directInEdgeBegin () const |
|
virtual const_iterator | directInEdgeEnd () const |
|
bool | addIncomingEdge (EdgeType *inEdge) |
| Add incoming and outgoing edges.
|
|
bool | addOutgoingEdge (EdgeType *outEdge) |
|
EdgeType * | hasIncomingEdge (EdgeType *edge) const |
| Find incoming and outgoing edges.
|
|
EdgeType * | hasOutgoingEdge (EdgeType *edge) const |
|
const GEdgeSetTy & | getOutEdges () const |
|
const GEdgeSetTy & | getInEdges () const |
|
u32_t | removeIncomingEdge (EdgeType *edge) |
|
u32_t | removeOutgoingEdge (EdgeType *edge) |
|
| SVFBaseNode (NodeID i, GNodeK k, SVFType *ty=nullptr) |
|
NodeID | getId () const |
| Get ID.
|
|
GNodeK | getNodeKind () const |
| Get node kind.
|
|
virtual void | setSourceLoc (const std::string &sourceCodeInfo) |
|
virtual const std::string | getSourceLoc () const |
|
const std::string | valueOnlyToString () const |
|
|
typedef GNodeK | PNODEK |
|
typedef s64_t | GEdgeKind |
|
typedef NodeTy | NodeType |
|
typedef EdgeTy | EdgeType |
|
typedef OrderedSet< EdgeType *, typename EdgeType::equalGEdge > | GEdgeSetTy |
| Edge kind.
|
|
typedef GEdgeSetTy::iterator | iterator |
|
typedef GEdgeSetTy::const_iterator | const_iterator |
|
enum | GNodeK {
IntraBlock
, GlobalBlock
, FunEntryBlock
, FunExitBlock
,
FunCallBlock
, FunRetBlock
, ValNode
, FunValNode
,
GepValNode
, RetNode
, VarargNode
, GlobalValNode
,
ConstantDataValNode
, BlackHoleNode
, ConstantFPValNode
, ConstantIntValNode
,
ConstantNullptrValNode
, DummyValNode
, ObjNode
, GepObjNode
,
BaseObjNode
, FunObjNode
, HeapObjNode
, StackObjNode
,
GlobalObjNode
, ConstantDataObjNode
, ConstantFPObjNode
, ConstantIntObjNode
,
ConstantNullptrObjNode
, DummyObjNode
, Cmp
, BinaryOp
,
UnaryOp
, Branch
, DummyVProp
, NPtr
,
FRet
, ARet
, AParm
, FParm
,
Addr
, Copy
, Gep
, Store
,
Load
, TPhi
, TIntraPhi
, TInterPhi
,
FPIN
, FPOUT
, APIN
, APOUT
,
MPhi
, MIntraPhi
, MInterPhi
, CallNodeKd
,
CDNodeKd
, CFLNodeKd
, CHNodeKd
, ConstraintNodeKd
,
TCTNodeKd
, DCHNodeKd
, OtherKd
} |
|
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) |
|
const MemObj * | mem |
|
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)
|
|
NodeID | id |
| Node ID.
|
|
GNodeK | nodeKind |
| Node kind.
|
|
const SVFType * | type |
| SVF type.
|
|
std::string | sourceLoc |
| Source code information of this value.
|
|
Class representing a heap object variable in the SVFIR.
This class models heap-allocated objects in the program analysis. It extends BaseObjVar to specifically handle heap memory locations.
Definition at line 615 of file SVFVariables.h.