Implement LTOModule on top of IRObjectFile.
[oota-llvm.git] / include / llvm / Object / IRObjectFile.h
index bc69de40cb56e872d20408bdaf3d12b41b1a2b36..b33cc263b9bd2635ed3767465adb5aa29feaeb87 100644 (file)
@@ -28,8 +28,7 @@ class IRObjectFile : public SymbolicFile {
   std::vector<std::pair<std::string, uint32_t>> AsmSymbols;
 
 public:
-  IRObjectFile(std::unique_ptr<MemoryBuffer> Object, std::error_code &EC,
-               LLVMContext &Context);
+  IRObjectFile(std::unique_ptr<MemoryBuffer> Object, std::unique_ptr<Module> M);
   ~IRObjectFile();
   void moveSymbolNext(DataRefImpl &Symb) const override;
   std::error_code printSymbolName(raw_ostream &OS,
@@ -39,6 +38,13 @@ public:
   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();
   }