diff --git a/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp b/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp index b1f4eab26de0e..a2a2e36e8523d 100644 --- a/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp +++ b/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp @@ -97,15 +97,19 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __ubsan_report_error_fatal, const char *kind, #if defined(__ANDROID__) extern "C" __attribute__((weak)) void android_set_abort_message(const char *); -static void abort_with_message(const char *kind, uintptr_t caller) { +static void abort_with_message(const char *kind, uintptr_t caller, + const uintptr_t *address) { char msg_buf[128]; - format_msg(kind, caller, msg_buf, msg_buf + sizeof(msg_buf)); + format_msg(kind, caller, address, msg_buf, msg_buf + sizeof(msg_buf)); if (&android_set_abort_message) android_set_abort_message(msg_buf); abort(); } #else -static void abort_with_message(const char *kind, uintptr_t caller) { abort(); } +static void abort_with_message(const char *kind, uintptr_t caller, + const uintptr_t *address) { + abort(); +} #endif #if SANITIZER_DEBUG @@ -132,7 +136,7 @@ void NORETURN CheckFailed(const char *file, int, const char *cond, u64, u64) { INTERFACE void __ubsan_handle_##name##_minimal_abort() { \ uintptr_t caller = GET_CALLER_PC(); \ __ubsan_report_error_fatal(kind, caller, nullptr); \ - abort_with_message(kind, caller); \ + abort_with_message(kind, caller, nullptr); \ } #define HANDLER(name, kind) \ @@ -149,7 +153,7 @@ void NORETURN CheckFailed(const char *file, int, const char *cond, u64, u64) { const uintptr_t address) { \ uintptr_t caller = GET_CALLER_PC(); \ __ubsan_report_error_fatal(kind, caller, &address); \ - abort_with_message(kind, caller); \ + abort_with_message(kind, caller, &address); \ } // A version of a handler that takes a pointer to a value.