diff options
Diffstat (limited to 'tools/llvm-rtdyld/llvm-rtdyld.cpp')
| -rw-r--r-- | tools/llvm-rtdyld/llvm-rtdyld.cpp | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/tools/llvm-rtdyld/llvm-rtdyld.cpp b/tools/llvm-rtdyld/llvm-rtdyld.cpp index 95de8d8a4d53..7b5bd0388d88 100644 --- a/tools/llvm-rtdyld/llvm-rtdyld.cpp +++ b/tools/llvm-rtdyld/llvm-rtdyld.cpp @@ -14,6 +14,8 @@  #include "llvm/ADT/StringMap.h"  #include "llvm/ADT/OwningPtr.h"  #include "llvm/ExecutionEngine/RuntimeDyld.h" +#include "llvm/ExecutionEngine/ObjectImage.h" +#include "llvm/ExecutionEngine/ObjectBuffer.h"  #include "llvm/Object/MachOObject.h"  #include "llvm/Support/CommandLine.h"  #include "llvm/Support/ManagedStatic.h" @@ -120,12 +122,14 @@ static int executeInput() {    for(unsigned i = 0, e = InputFileList.size(); i != e; ++i) {      // Load the input memory buffer.      OwningPtr<MemoryBuffer> InputBuffer; +    OwningPtr<ObjectImage>  LoadedObject;      if (error_code ec = MemoryBuffer::getFileOrSTDIN(InputFileList[i],                                                       InputBuffer))        return Error("unable to read input: '" + ec.message() + "'"); -    // Load the object file into it. -    if (Dyld.loadObject(InputBuffer.take())) { +    // Load the object file +    LoadedObject.reset(Dyld.loadObject(new ObjectBuffer(InputBuffer.take()))); +    if (!LoadedObject) {        return Error(Dyld.getErrorString());      }    }  | 
