37class AbstractInterpretation;
 
Handles external API calls and manages abstract states.
 
std::string strRead(AbstractState &as, const SVFVar *rhs)
Reads a string from the abstract state.
 
void handleMemset(AbstractState &as, const SVFVar *dst, IntervalValue elem, IntervalValue len)
Handles the memset API call.
 
void initExtFunMap()
Initializes the external function map.
 
IntervalValue getStrlen(AbstractState &as, const SVF::SVFVar *strValue)
Calculates the length of a string.
 
Map< const ICFGNode *, AbstractState > & abstractTrace
Map of ICFG nodes to abstract states.
 
void handleExtAPI(const CallICFGNode *call)
Handles an external API call.
 
AbstractState & getAbsStateFromTrace(const ICFGNode *node)
Retrieves the abstract state from the trace for a given ICFG node.
 
void handleMemcpy(AbstractState &as, const SVF::SVFVar *dst, const SVF::SVFVar *src, IntervalValue len, u32_t start_idx)
Handles the memcpy API call.
 
SVFIR * svfir
Pointer to the SVF intermediate representation.
 
void handleStrcat(const SVF::CallICFGNode *call)
Handles the strcat API call.
 
ExtAPIType
Enumeration of external API types.
 
IntervalValue getRangeLimitFromType(const SVFType *type)
Gets the range limit from a type.
 
ICFG * icfg
Pointer to the interprocedural control flow graph.
 
void handleStrcpy(const CallICFGNode *call)
Handles the strcpy API call.
 
Map< std::string, std::function< void(const CallICFGNode *)> > func_map
Map of function names to handlers.
 
std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map
 
llvm::IRBuilder IRBuilder