7 #ifndef RETDEC_BIN2LLVMIR_PROVIDERS_NAMES_H
8 #define RETDEC_BIN2LLVMIR_PROVIDERS_NAMES_H
48 const std::string& name = std::string());
51 const std::string& name = std::string());
107 operator std::string()
const;
108 explicit operator bool()
const;
111 const std::string&
getName()
const;
129 using iterator =
typename std::set<Name>::iterator;
134 const std::string& name,
142 std::size_t
size()
const;
166 const std::string& name,
179 const std::string& libName,
193 std::map<retdec::common::Address, Names>
_data;
Config DB provider for bin2llvmirl.
Demangler provider for bin2llvmirl.
Definition: demangler.h:34
Definition: fileimage.h:27
FileImage * _image
Definition: names.h:190
Config * _config
Definition: names.h:188
void initFromDebug()
Definition: names.cpp:335
std::string getNameFromImportLibAndOrd(const std::string &libName, int ord)
Definition: names.cpp:477
const Name & getPreferredNameForAddress(retdec::common::Address a)
Definition: names.cpp:306
NameContainer(llvm::Module *m, Config *c, DebugFormat *d, FileImage *i, Demangler *dm, Lti *lti=nullptr)
Definition: names.cpp:264
void initFromConfig()
Definition: names.cpp:311
std::map< retdec::common::Address, Names > _data
Definition: names.h:193
void initFromImage()
Definition: names.cpp:363
Lti * _lti
Definition: names.h:191
bool addNameForAddress(retdec::common::Address a, const std::string &name, Name::eType type, Lti *lti=nullptr)
Definition: names.cpp:286
const Names & getNamesForAddress(retdec::common::Address a)
Definition: names.cpp:301
DebugFormat * _debug
Definition: names.h:189
std::map< std::string, ImportOrdMap > _dllOrds
<library name without suffix ".dll", map with ordinals>
Definition: names.h:195
std::map< int, std::string > ImportOrdMap
<ordinal number, function name>
Definition: names.h:185
bool loadImportOrds(const std::string &libName)
Definition: names.cpp:504
std::string _name
Definition: names.h:119
eType
Definition: names.h:70
void fixPic32Mangling()
Definition: names.cpp:149
Name()
Definition: names.cpp:76
eType getType() const
Definition: names.cpp:144
const std::string & getName() const
Definition: names.cpp:139
bool operator<(const Name &o) const
Definition: names.cpp:108
void fixPostfix()
Definition: names.cpp:196
eType _type
Definition: names.h:120
static std::map< llvm::Module *, NameContainer > _module2names
Definition: names.h:216
static NameContainer * addNames(llvm::Module *m, Config *c, DebugFormat *d, FileImage *i, Demangler *dm, Lti *lti)
Definition: names.cpp:549
static void clear()
Definition: names.cpp:582
static NameContainer * getNames(llvm::Module *m)
Definition: names.cpp:570
const Name & getPreferredName()
Definition: names.cpp:233
std::size_t size() const
Definition: names.cpp:248
bool empty() const
Definition: names.cpp:253
iterator end()
Definition: names.cpp:243
iterator begin()
Definition: names.cpp:238
typename std::set< Name >::iterator iterator
Definition: names.h:129
std::set< Name > _names
Definition: names.h:146
bool addName(Config *c, const std::string &name, Name::eType type, Lti *lti=nullptr)
Definition: names.cpp:217
static Name _emptyName
Definition: names.h:147
Address, address pair and other derived class representation.
File image provider for bin2llvmirl.
Library type information provider for bin2llvmirl.
The frontend-end part of the decompiler.
std::string generateFunctionNameUndef(unsigned cntr)
Definition: names.cpp:58
std::string generateFunctionNameUnknown(common::Address a, bool ida=false)
Definition: names.cpp:31
const std::string entryPointName
Definition: names.h:25
const std::string pseudoReturnFunction
Definition: names.h:38
std::string generateVtableName(common::Address a)
Definition: names.cpp:63
const std::string generatedVtablePrefix
Definition: names.h:35
std::string generateFunctionName(common::Address a, bool ida=false)
Definition: names.cpp:24
const std::string pseudoCondBranchFunction
Definition: names.h:40
const std::string generatedFunctionPrefixUnk
Definition: names.h:29
std::string generateBasicBlockName(common::Address a)
Definition: names.cpp:48
const std::string pseudoX87dataLoadFunction
Definition: names.h:41
const std::string generatedFunctionPrefix
Definition: names.h:27
const std::string generatedGlobalVarPrefix
Definition: names.h:30
const std::string generatedUndefFunctionPrefix
Definition: names.h:34
const std::string generatedFunctionPrefixIDA
Definition: names.h:28
const std::string generatedTempVarPrefix
Definition: names.h:32
std::string generateTempVariableName(common::Address a, unsigned cntr)
Definition: names.cpp:53
const std::string generatedImportPrefix
Definition: names.h:26
const std::string generatedBasicBlockPrefix
Definition: names.h:33
const std::string pseudoBranchFunction
Definition: names.h:39
const std::string pseudoCallFunction
Definition: names.h:37
const std::string generatedStackVarPrefix
Definition: names.h:31
std::string generateStackVarName(int offset, const std::string &name=std::string())
Definition: names.cpp:42
std::string generateGlobalVarName(common::Address a, const std::string &name=std::string())
Definition: names.cpp:36
const std::string pseudoX87dataStoreFunction
Definition: names.h:42
const std::string asm2llvmGv
Definition: names.h:36
Definition: archive_wrapper.h:19