VTablePtrToCallSiteMap vtableToCallSiteMap
OrderedMap< NodeID, const CallICFGNode * > VTablePtrToCallSiteMap
virtual OrderedNodeSet & collectCandidateQueries(SVFIR *pag)
Only collect function pointers as query candidates.
OrderedSet< const PAGNode * > PAGNodeSet
virtual void performStat(PointerAnalysis *pta)
void setPAG(SVFIR *g)
Set SVFIR graph.
OrderedNodeSet userInput
User input queries.
virtual void answerQueries(PointerAnalysis *pta)
void setQuery(NodeID ptr)
Set pointer to be queried by DDA analysis.
void setCurrentQueryPtr(NodeID ptr)
Set the pointer being queried.
SVFIR * pag
SVFIR graph used by current DDA analysis.
NodeID curPtr
current pointer being queried
const OrderedNodeSet & getCandidateQueries() const
Get candidate queries.
void addCandidate(NodeID id)
virtual void collectWPANum()
OrderedNodeSet candidateQueries
store all candidate pointers to be queried
bool solveAll
TRUE if all top level pointers are being queried.
virtual OrderedNodeSet & collectCandidateQueries(SVFIR *p)
Collect candidate pointers for query.
virtual void handleStatement(const SVFGNode *, NodeID)
Call back used by DDAVFSolver.
virtual void performStat(PointerAnalysis *)
virtual void initialise()
VTablePtrToCallSiteMap vtableToCallSiteMap
virtual OrderedNodeSet & collectCandidateQueries(SVFIR *p)
Only collect function pointers as query candidates.
virtual void performStat(PointerAnalysis *pta)
OrderedMap< NodeID, const CallICFGNode * > VTablePtrToCallSiteMap
NodeType * getGNode(NodeID id) const
Get a node.
bool isValidTopLevelPtr(const SVFVar *node)
OrderedNodeSet & getAllValidPtrs()
Return valid pointers.
OrderedSet< NodeID > OrderedNodeSet
llvm::IRBuilder IRBuilder