aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Object/IRObjectFile.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/Object/IRObjectFile.h')
-rw-r--r--include/llvm/Object/IRObjectFile.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/include/llvm/Object/IRObjectFile.h b/include/llvm/Object/IRObjectFile.h
index 78f5b2b..b33cc26 100644
--- a/include/llvm/Object/IRObjectFile.h
+++ b/include/llvm/Object/IRObjectFile.h
@@ -25,20 +25,33 @@ namespace object {
class IRObjectFile : public SymbolicFile {
std::unique_ptr<Module> M;
std::unique_ptr<Mangler> Mang;
+ std::vector<std::pair<std::string, uint32_t>> AsmSymbols;
public:
- IRObjectFile(MemoryBuffer *Object, error_code &EC, LLVMContext &Context,
- bool BufferOwned);
+ IRObjectFile(std::unique_ptr<MemoryBuffer> Object, std::unique_ptr<Module> M);
+ ~IRObjectFile();
void moveSymbolNext(DataRefImpl &Symb) const override;
- error_code printSymbolName(raw_ostream &OS, DataRefImpl Symb) const override;
+ std::error_code printSymbolName(raw_ostream &OS,
+ DataRefImpl Symb) const override;
uint32_t getSymbolFlags(DataRefImpl Symb) const override;
- const GlobalValue &getSymbolGV(DataRefImpl Symb) const;
+ const GlobalValue *getSymbolGV(DataRefImpl Symb) const;
basic_symbol_iterator symbol_begin_impl() const override;
basic_symbol_iterator symbol_end_impl() const override;
+ const Module &getModule() const {
+ return const_cast<IRObjectFile*>(this)->getModule();
+ }
+ Module &getModule() {
+ return *M;
+ }
+
static inline bool classof(const Binary *v) {
return v->isIR();
}
+
+ static ErrorOr<IRObjectFile *>
+ createIRObjectFile(std::unique_ptr<MemoryBuffer> Object,
+ LLVMContext &Context);
};
}
}