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>
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
+ }
}
}
}
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;
}