retdec
hierarchy.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_BIN2LLVMIR_OPTIMIZATIONS_CLASS_HIERARCHY_HIERARCHY_H
8 #define RETDEC_BIN2LLVMIR_OPTIMIZATIONS_CLASS_HIERARCHY_HIERARCHY_H
9 
10 #include <list>
11 #include <set>
12 #include <vector>
13 
14 #include <llvm/IR/Function.h>
15 
18 #include "retdec/common/vtable.h"
19 
20 namespace retdec {
21 namespace bin2llvmir {
22 
23 class Class
24 {
25  public:
26  std::string dump() const;
28  llvm::Module* m,
29  Config* config) const;
30 
31  public:
32  std::string name;
33  std::set<const llvm::Function*> constructors;
34  std::set<const llvm::Function*> destructors;
35  std::set<const llvm::Function*> methods;
36  std::set<const llvm::Function*> virtualFunctions;
37  std::set<const common::Vtable*> virtualFunctionTables;
38  std::set<Class*> superClasses;
39  llvm::Value* structure;
40 
43 };
44 
46 {
47  public:
49 
50  std::string dump() const;
51 
52  public:
53  std::list<Class> classes;
54 };
55 
56 } // namespace bin2llvmir
57 } // namespace retdec
58 
59 #endif
Config DB provider for bin2llvmirl.
Definition: hierarchy.h:46
std::list< Class > classes
Definition: hierarchy.h:53
std::string dump() const
Definition: hierarchy.cpp:127
Class * addAndGetNewClass()
Definition: hierarchy.cpp:121
Definition: hierarchy.h:24
std::string name
Definition: hierarchy.h:32
std::set< const llvm::Function * > virtualFunctions
Definition: hierarchy.h:36
std::set< const llvm::Function * > destructors
Definition: hierarchy.h:34
std::set< const llvm::Function * > constructors
Definition: hierarchy.h:33
llvm::Value * structure
Definition: hierarchy.h:39
const rtti_finder::RTTITypeDescriptor * msvcRtti
Definition: hierarchy.h:42
std::set< const llvm::Function * > methods
Definition: hierarchy.h:35
std::string dump() const
Definition: hierarchy.cpp:22
retdec::common::Class getConfigClass(llvm::Module *m, Config *config) const
Definition: hierarchy.cpp:55
std::set< Class * > superClasses
Definition: hierarchy.h:38
std::set< const common::Vtable * > virtualFunctionTables
Definition: hierarchy.h:37
const rtti_finder::ClassTypeInfo * gccRtti
Definition: hierarchy.h:41
Definition: config.h:24
Definition: class.h:22
Definition: rtti_gcc.h:71
Definition: rtti_msvc.h:31
Common vtable representation.
Database of objects' names in binary.
The frontend-end part of the decompiler.
Definition: archive_wrapper.h:19