[llvm] [Offload] Ensure all `llvm::Error`s are handled (PR #137339)

Callum Fare via llvm-commits llvm-commits at lists.llvm.org
Thu May 1 08:18:47 PDT 2025


================
@@ -308,9 +308,11 @@ ol_impl_result_t olMemAlloc_impl(ol_device_handle_t Device,
                                  void **AllocationOut) {
   auto Alloc =
       Device->Device->dataAlloc(Size, nullptr, convertOlToPluginAllocTy(Type));
-  if (!Alloc)
+  if (!Alloc) {
+    llvm::consumeError(Alloc.takeError());
     return {OL_ERRC_OUT_OF_RESOURCES,
             formatv("Could not create allocation on device {0}", Device).str()};
+  }
----------------
callumfare wrote:

`ol_result_t` is what's actually at the API boundaries (it's a pointer-to-struct). `ol_impl_result_t` is a helper type that converts to `ol_result_t` by putting the string and error code in global data structures and returning the pointer to ensure the lifetime is correct.

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


More information about the llvm-commits mailing list