[llvm] [Offload] Use new error code handling mechanism (PR #139275)

Ross Brunton via llvm-commits llvm-commits at lists.llvm.org
Fri May 9 09:12:31 PDT 2025


================
@@ -32,7 +32,16 @@ GenericGlobalHandlerTy::getELFObjectFile(DeviceImageTy &Image) {
   assert(utils::elf::isELF(Image.getMemoryBuffer().getBuffer()) &&
          "Input is not an ELF file");
 
-  return ELFObjectFileBase::createELFObjectFile(Image.getMemoryBuffer());
+  auto Expected =
+      ELFObjectFileBase::createELFObjectFile(Image.getMemoryBuffer());
+  if (!Expected) {
+    return handleErrors(Expected.takeError(), [](llvm::StringError &Err) {
+      return llvm::createStringError(ErrorCode::INVALID_BINARY,
+                                     "Error parsing binary: " +
+                                         Err.getMessage());
+    });
+  }
+  return Expected;
----------------
RossBrunton wrote:

I've added a new overload of `Plugin::error` which accepts an `llvm::Error` and a context. If it is given a non-string error, it just has `Context` as its error message. If it is a string error, its error message is in the form `${Context}: ${Message}`.

https://github.com/llvm/llvm-project/pull/139275


More information about the llvm-commits mailing list