v2: pass llvm context reference instead of a pointer Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> Reviewed-by: Francisco Jerez <currojerez@riseup.net>tags/17.3-branchpoint
| @@ -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 | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @@ -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; | |||
| } | |||