mirror of
https://github.com/openharmony/third_party_rust_rust.git
synced 2026-07-20 04:04:29 -04:00
RustWrapper: work around unification of diagnostic handlers
This lets me build against llvm/main as of March 23rd, 2021. I'm not entirely sure this is _correct_, but it appears to be functionally identical to what was done in LLVM: existing callsites of setInlineAsmDiagnosticHandler were moved to SetDiagnosticHandler() on the context object, which we already set up in both places that we called setInlineAsmDiagnosticHandler().
This commit is contained in:
@@ -1300,9 +1300,19 @@ extern "C" LLVMTypeKind LLVMRustGetTypeKind(LLVMTypeRef Ty) {
|
||||
|
||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(SMDiagnostic, LLVMSMDiagnosticRef)
|
||||
|
||||
#if LLVM_VERSION_LT(13, 0)
|
||||
using LLVMInlineAsmDiagHandlerTy = LLVMContext::InlineAsmDiagHandlerTy;
|
||||
#else
|
||||
using LLVMInlineAsmDiagHandlerTy = void*;
|
||||
#endif
|
||||
|
||||
extern "C" void LLVMRustSetInlineAsmDiagnosticHandler(
|
||||
LLVMContextRef C, LLVMContext::InlineAsmDiagHandlerTy H, void *CX) {
|
||||
LLVMContextRef C, LLVMInlineAsmDiagHandlerTy H, void *CX) {
|
||||
// Diagnostic handlers were unified in LLVM change 5de2d189e6ad, so starting
|
||||
// with LLVM 13 this function is gone.
|
||||
#if LLVM_VERSION_LT(13, 0)
|
||||
unwrap(C)->setInlineAsmDiagnosticHandler(H, CX);
|
||||
#endif
|
||||
}
|
||||
|
||||
extern "C" bool LLVMRustUnpackSMDiagnostic(LLVMSMDiagnosticRef DRef,
|
||||
|
||||
Reference in New Issue
Block a user