#include <ctor_dtor.h>
◆ FunctionSet
◆ FunctionToInfo
◆ StoreToVtable
◆ analyseFunction()
void retdec::bin2llvmir::CtorDtor::analyseFunction |
( |
llvm::Function * |
fnc | ) |
|
|
private |
◆ analyseFunctionBackward()
◆ analyseFunctionCommon()
◆ analyseFunctionForward()
◆ findPossibleCtorsDtors()
void retdec::bin2llvmir::CtorDtor::findPossibleCtorsDtors |
( |
| ) |
|
|
private |
Collects all stores to global variables at vtable addresses. Collects functions where these stores are.
◆ findPreviousStoreToECX()
StoreInst * retdec::bin2llvmir::CtorDtor::findPreviousStoreToECX |
( |
llvm::Instruction * |
inst | ) |
|
|
private |
Find store to gpr1 (ecx) before inst
.
- Parameters
-
inst | Instruction to find store before. |
- Returns
- Found store, or nullptr.
◆ getOffset()
int retdec::bin2llvmir::CtorDtor::getOffset |
( |
llvm::Value * |
ecxStoreOp | ) |
|
|
private |
◆ getResults()
◆ propagateCtorDtor()
void retdec::bin2llvmir::CtorDtor::propagateCtorDtor |
( |
| ) |
|
|
private |
Sometimes function analysis can not decide, if function is ctor or dtor. This is typical for base classes' ctors/dtors, which are not calling super methods. However, we can do a bottom-up propagation: if we know some method is ctor/dtor and it is calling some super method, we can say if the super method is ctor/dtor.
◆ runOnModule()
void retdec::bin2llvmir::CtorDtor::runOnModule |
( |
llvm::Module * |
m, |
|
|
Config * |
c, |
|
|
FileImage * |
i |
|
) |
| |
◆ config
Config* retdec::bin2llvmir::CtorDtor::config = nullptr |
|
private |
◆ function2info
◆ image
FileImage* retdec::bin2llvmir::CtorDtor::image = nullptr |
|
private |
◆ module
llvm::Module* retdec::bin2llvmir::CtorDtor::module = nullptr |
|
private |
◆ possibleCtorsDtors
FunctionSet retdec::bin2llvmir::CtorDtor::possibleCtorsDtors |
|
private |
◆ stores2vtables
The documentation for this class was generated from the following files:
- /var/cache/acbs/build/acbs.6bu6osb6/retdec/include/retdec/bin2llvmir/analyses/ctor_dtor.h
- /var/cache/acbs/build/acbs.6bu6osb6/retdec/src/bin2llvmir/analyses/ctor_dtor.cpp