35 using namespace SVFUtil;
50 assert(val !=
nullptr &&
"value is nullptr for ValVar or GepValNode");
56 assert(val !=
nullptr &&
"value is nullptr for RetNode");
57 isPtr = SVFUtil::cast<SVFFunction>(val)->getReturnType()->isPointerTy();
77 assert(
false &&
"var not handled");
88 else if (
value && SVFUtil::isa<SVFFunction>(
value))
89 return SVFUtil::cast<SVFFunction>(
value)->isIntrinsic();
98 std::stringstream rawstr(str);
99 rawstr <<
"SVFVar ID: " <<
getId();
111 std::stringstream rawstr(str);
112 rawstr <<
"ValVar ID: " <<
getId();
124 std::stringstream rawstr(str);
125 rawstr <<
"ObjVar ID: " <<
getId();
137 std::stringstream rawstr(str);
150 std::stringstream rawstr(str);
151 rawstr <<
"GepObjVar ID: " <<
getId() <<
" with offset_" + std::to_string(
apOffset);
163 std::stringstream rawstr(str);
164 rawstr <<
"FIObjVar ID: " <<
getId() <<
" (base object)";
176 std::stringstream rawstr(str);
177 rawstr <<
"RetPN ID: " <<
getId() <<
" unique return node for function " << SVFUtil::cast<SVFFunction>(
value)->getName();
184 std::stringstream rawstr(str);
185 rawstr <<
"VarArgPN ID: " <<
getId() <<
" Var arg node for function " << SVFUtil::cast<SVFFunction>(
value)->getName();
192 std::stringstream rawstr(str);
193 rawstr <<
"DummyValVar ID: " <<
getId();
200 std::stringstream rawstr(str);
201 rawstr <<
"DummyObjVar ID: " <<
getId();
virtual const std::string toString() const
virtual const std::string toString() const
virtual const std::string toString() const
const GEdgeSetTy & getOutEdges() const
const GEdgeSetTy & getInEdges() const
virtual const std::string toString() const
virtual const std::string toString() const
APOffset getConstantFieldIdx() const
offset of the base value variable
virtual const std::string toString() const
static const Option< bool > ShowSVFIRValue
virtual const std::string toString() const
NodeID getId() const
Get ID.
virtual const SVFType * getType() const
std::string toString() const
Needs to be implemented by a SVF front end.
bool isConstDataOrAggData() const
bool isConstDataOrAggDataButNotNullPtr() const
SVFVar(NodeID i, PNODEK k)
whether it is a pointer (top-level or address-taken)
void dump() const
Dump to console for debugging.
const SVFValue * value
value of this SVFIR node
bool isIsolatedNode() const
Whether this is an isolated node on the SVFIR graph.
virtual const std::string toString() const
virtual const std::string toString() const
virtual const std::string toString() const
std::ostream & outs()
Overwrite llvm::outs()