Weak relaxing of the constraints on atomics in MemoryDependencyAnalysis
[oota-llvm.git] / lib / Object / ELFObjectFile.cpp
index 0e6230d08c4c84532eea0883518bf3a650b2fc67..2e5e3c8836c42780143b42884dc1656ee9ab1151 100644 (file)
 namespace llvm {
 using namespace object;
 
-ErrorOr<ObjectFile *>
+ELFObjectFileBase::ELFObjectFileBase(unsigned int Type,
+                                     std::unique_ptr<MemoryBuffer> Source)
+    : ObjectFile(Type, std::move(Source)) {}
+
+ErrorOr<std::unique_ptr<ObjectFile>>
 ObjectFile::createELFObjectFile(std::unique_ptr<MemoryBuffer> &Obj) {
-  std::pair<unsigned char, unsigned char> Ident = getElfArchType(Obj.get());
+  std::pair<unsigned char, unsigned char> Ident =
+      getElfArchType(Obj->getBuffer());
   std::size_t MaxAlignment =
     1ULL << countTrailingZeros(uintptr_t(Obj->getBufferStart()));
 
@@ -79,7 +84,7 @@ ObjectFile::createELFObjectFile(std::unique_ptr<MemoryBuffer> &Obj) {
 
   if (EC)
     return EC;
-  return R.release();
+  return std::move(R);
 }
 
 } // end namespace llvm