diff options
-rw-r--r-- | src/gallium/state_trackers/clover/llvm/compat.hpp | 10 | ||||
-rw-r--r-- | src/gallium/state_trackers/clover/llvm/invocation.cpp | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/clover/llvm/compat.hpp b/src/gallium/state_trackers/clover/llvm/compat.hpp index b22ecfa6b2e..23b111d7104 100644 --- a/src/gallium/state_trackers/clover/llvm/compat.hpp +++ b/src/gallium/state_trackers/clover/llvm/compat.hpp @@ -198,6 +198,16 @@ namespace clover { f(mod.getError().message()); #endif } + + template<typename T> void + set_diagnostic_handler(::llvm::LLVMContext &ctx, + T *diagnostic_handler, void *data) { +#if HAVE_LLVM >= 0x0600 + ctx.setDiagnosticHandlerCallBack(diagnostic_handler, data); +#else + ctx.setDiagnosticHandler(diagnostic_handler, data); +#endif + } } } } diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp index 6412377faab..a373df4eac6 100644 --- a/src/gallium/state_trackers/clover/llvm/invocation.cpp +++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp @@ -89,7 +89,7 @@ namespace { create_context(std::string &r_log) { init_targets(); std::unique_ptr<LLVMContext> ctx { new LLVMContext }; - ctx->setDiagnosticHandler(diagnostic_handler, &r_log); + compat::set_diagnostic_handler(*ctx, diagnostic_handler, &r_log); return ctx; } |