[Mesa-dev] [PATCH] clover: adapt to new error API since LLVM r286752

Vedran Miletić vedran at miletic.net
Mon Nov 14 11:17:42 UTC 2016


---
 src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp b/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp
index 8e89a49..5dcc4f8 100644
--- a/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp
+++ b/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp
@@ -98,8 +98,14 @@ clover::llvm::parse_module_library(const module &m, ::llvm::LLVMContext &ctx,
                                    std::string &r_log) {
    auto mod = ::llvm::parseBitcodeFile(::llvm::MemoryBufferRef(
                                         as_string(m.secs[0].data), " "), ctx);
-   if (!mod)
-      fail(r_log, error(CL_INVALID_PROGRAM), mod.getError().message());
+
+   if (::llvm::Error err = mod.takeError()) {
+      std::string msg;
+      ::llvm::handleAllErrors(std::move(err), [&](::llvm::ErrorInfoBase &EIB) {
+         msg = EIB.message();
+         fail(r_log, error(CL_INVALID_PROGRAM), msg.c_str());
+      });
+   }
 
    return std::unique_ptr<::llvm::Module>(std::move(*mod));
 }
-- 
2.7.4



More information about the mesa-dev mailing list