Remove duplication of relocation names in lib/Object/ELFYAML.cpp
[oota-llvm.git] / lib / ExecutionEngine / MCJIT / MCJIT.cpp
index 9469d108e2e3167fb8313d7f650b2db30b5c8bf8..da5f03799e354326a2e31bcc2aea322a64cb8a09 100644 (file)
@@ -109,8 +109,11 @@ void MCJIT::addObjectFile(std::unique_ptr<object::ObjectFile> Obj) {
 }
 
 void MCJIT::addObjectFile(object::OwningBinary<object::ObjectFile> Obj) {
-  addObjectFile(std::move(Obj.getBinary()));
-  Buffers.push_back(std::move(Obj.getBuffer()));
+  std::unique_ptr<object::ObjectFile> ObjFile;
+  std::unique_ptr<MemoryBuffer> MemBuf;
+  std::tie(ObjFile, MemBuf) = Obj.takeBinary();
+  addObjectFile(std::move(ObjFile));
+  Buffers.push_back(std::move(MemBuf));
 }
 
 void MCJIT::addArchive(object::OwningBinary<object::Archive> A) {
@@ -290,7 +293,7 @@ uint64_t MCJIT::getSymbolAddress(const std::string &Name,
     return Addr;
 
   for (object::OwningBinary<object::Archive> &OB : Archives) {
-    object::Archive *A = OB.getBinary().get();
+    object::Archive *A = OB.getBinary();
     // Look for our symbols in each Archive
     object::Archive::child_iterator ChildIt = A->findSym(Name);
     if (ChildIt != A->child_end()) {
@@ -357,7 +360,7 @@ void *MCJIT::getPointerToFunction(Function *F) {
   if (F->isDeclaration() || F->hasAvailableExternallyLinkage()) {
     bool AbortOnFailure = !F->hasExternalWeakLinkage();
     void *Addr = getPointerToNamedFunction(Name, AbortOnFailure);
-    addGlobalMapping(F, Addr);
+    updateGlobalMapping(F, Addr);
     return Addr;
   }