================ @@ -162,6 +162,19 @@ class OffloadFile : public OwningBinary<OffloadBinary> { std::unique_ptr<MemoryBuffer> Buffer) : OwningBinary<OffloadBinary>(std::move(Binary), std::move(Buffer)) {} + /// Make a deep copy of this offloading file. + OffloadFile copy() const { + std::unique_ptr<MemoryBuffer> Buffer = MemoryBuffer::getMemBufferCopy( + getBinary()->getMemoryBufferRef().getBuffer()); + + // This parsing should never fail because it has already been parsed. + auto NewBinaryOrErr = OffloadBinary::create(*Buffer); + assert(NewBinaryOrErr && "Failed to parse a copy of the binary?"); + if (!NewBinaryOrErr) ---------------- arsenm wrote:
Assert + error handling = ??? https://github.com/llvm/llvm-project/pull/78359 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits