7 #ifndef RETDEC_LLVMIR2HLL_ANALYSIS_INDIRECT_FUNC_REF_ANALYSIS_H
8 #define RETDEC_LLVMIR2HLL_ANALYSIS_INDIRECT_FUNC_REF_ANALYSIS_H
Analysis of functions that are referenced outside of direct calls.
Definition: indirect_func_ref_analysis.h:48
void visitArgs(const ExprVector &args)
Visits all the given arguments.
Definition: indirect_func_ref_analysis.cpp:86
static bool isIndirectlyReferenced(ShPtr< Module > module, ShPtr< Function > func)
Returns the set of functions that are reference outside of function calls in the given module.
Definition: indirect_func_ref_analysis.cpp:48
void visitAllFuncs()
Visits all the functions in the given module.
Definition: indirect_func_ref_analysis.cpp:64
IndirectFuncRefAnalysis(ShPtr< Module > module)
Constructs a new analysis.
Definition: indirect_func_ref_analysis.cpp:23
static FuncSet getIndirectlyReferencedFuncs(ShPtr< Module > module)
Returns the set of functions that are referenced outside of direct function calls in the given module...
Definition: indirect_func_ref_analysis.cpp:33
ShPtr< Module > module
The analyzed module.
Definition: indirect_func_ref_analysis.h:71
ShPtr< Function > currFunc
The currently visited function.
Definition: indirect_func_ref_analysis.h:74
virtual void visit(ShPtr< GlobalVarDef > varDef) override
Definition: ordered_all_visitor.cpp:95
FuncSet indirRefdFuncs
Indirectly referenced functions.
Definition: indirect_func_ref_analysis.h:77
bool shouldCalledExprBeVisited(ShPtr< Expression > expr)
Checks whether the given called expression should be visited.
Definition: indirect_func_ref_analysis.cpp:75
void performAnalysis()
Performs the analysis.
Definition: indirect_func_ref_analysis.cpp:56
A visitor that visits everything in an ordered way.
Definition: ordered_all_visitor.h:44
virtual void visit(ShPtr< GlobalVarDef > varDef) override
Definition: ordered_all_visitor.cpp:95
A mixin to make classes non-copyable.
Definition: non_copyable.h:27
A library providing API for working with back-end IR.
std::shared_ptr< T > ShPtr
An alias for a shared pointer.
Definition: smart_ptr.h:18
std::vector< ShPtr< Expression > > ExprVector
Vector of expressions.
Definition: types.h:99
std::set< ShPtr< Function > > FuncSet
Set of functions.
Definition: types.h:78
Definition: archive_wrapper.h:19
A mixin to make classes non-copyable.
A visitor that visits everything in an ordered way.
Declarations, aliases, macros, etc. for the use of smart pointers.
Aliases for several useful types.