diff options
| -rw-r--r-- | llvm/include/llvm/LTO/LTOCodeGenerator.h | 2 | ||||
| -rw-r--r-- | llvm/lib/LTO/LTOCodeGenerator.cpp | 9 | 
2 files changed, 3 insertions, 8 deletions
diff --git a/llvm/include/llvm/LTO/LTOCodeGenerator.h b/llvm/include/llvm/LTO/LTOCodeGenerator.h index 67b8903feb7..5bd28950d6c 100644 --- a/llvm/include/llvm/LTO/LTOCodeGenerator.h +++ b/llvm/include/llvm/LTO/LTOCodeGenerator.h @@ -142,7 +142,7 @@ private:    lto_codegen_model CodeModel;    StringSet MustPreserveSymbols;    StringSet AsmUndefinedRefs; -  MemoryBuffer *NativeObjectFile; +  std::unique_ptr<MemoryBuffer> NativeObjectFile;    std::vector<char *> CodegenOptions;    std::string MCpu;    std::string MAttr; diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp index 887fddefc57..491975e3db6 100644 --- a/llvm/lib/LTO/LTOCodeGenerator.cpp +++ b/llvm/lib/LTO/LTOCodeGenerator.cpp @@ -67,15 +67,13 @@ LTOCodeGenerator::LTOCodeGenerator()      : Context(getGlobalContext()), IRLinker(new Module("ld-temp.o", Context)),        TargetMach(nullptr), EmitDwarfDebugInfo(false),        ScopeRestrictionsDone(false), CodeModel(LTO_CODEGEN_PIC_MODEL_DEFAULT), -      NativeObjectFile(nullptr), DiagHandler(nullptr), DiagContext(nullptr) { +      DiagHandler(nullptr), DiagContext(nullptr) {    initializeLTOPasses();  }  LTOCodeGenerator::~LTOCodeGenerator() {    delete TargetMach; -  delete NativeObjectFile;    TargetMach = nullptr; -  NativeObjectFile = nullptr;    IRLinker.deleteModule(); @@ -234,9 +232,6 @@ const void* LTOCodeGenerator::compile(size_t* length,                         errMsg))      return nullptr; -  // remove old buffer if compile() called twice -  delete NativeObjectFile; -    // read .o file into memory buffer    ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr =        MemoryBuffer::getFile(name, -1, false); @@ -245,7 +240,7 @@ const void* LTOCodeGenerator::compile(size_t* length,      sys::fs::remove(NativeObjectPath);      return nullptr;    } -  NativeObjectFile = BufferOrErr.get().release(); +  NativeObjectFile = std::move(*BufferOrErr);    // remove temp files    sys::fs::remove(NativeObjectPath);  | 

