diff options
author | Igor Kudrin <ikudrin@accesssoftek.com> | 2022-08-23 21:39:27 +0400 |
---|---|---|
committer | Igor Kudrin <ikudrin@accesssoftek.com> | 2022-08-23 21:39:27 +0400 |
commit | 1959a55591dac8f698b6c86cb39724a1a13484ab (patch) | |
tree | 431507cbf19496ede296dbd2abe2c652f0e67b7e | |
parent | 75767a0f9a926641edbef08e31ec2148ff45da67 (diff) | |
download | llvm-1959a55591dac8f698b6c86cb39724a1a13484ab.zip llvm-1959a55591dac8f698b6c86cb39724a1a13484ab.tar.gz llvm-1959a55591dac8f698b6c86cb39724a1a13484ab.tar.bz2 |
[ubsan-minimal][NFC] Use GET_CALLER_PC() to get the return address
This is a preparation step for D131914.
-rw-r--r-- | compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp b/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp index 6a1903d..5301a51 100644 --- a/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp +++ b/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp @@ -20,9 +20,9 @@ static __sanitizer::atomic_uintptr_t caller_pcs[kMaxCallerPcs]; // that "too many errors" has already been reported. static __sanitizer::atomic_uint32_t caller_pcs_sz; -__attribute__((noinline)) static bool report_this_error(void *caller_p) { - uintptr_t caller = reinterpret_cast<uintptr_t>(caller_p); - if (caller == 0) return false; +__attribute__((noinline)) static bool report_this_error(uintptr_t caller) { + if (caller == 0) + return false; while (true) { unsigned sz = __sanitizer::atomic_load_relaxed(&caller_pcs_sz); if (sz > kMaxCallerPcs) return false; // early exit @@ -80,7 +80,7 @@ void NORETURN CheckFailed(const char *file, int, const char *cond, u64, u64) { // @1234ABCD"). #define HANDLER_RECOVER(name, msg) \ INTERFACE void __ubsan_handle_##name##_minimal() { \ - if (!report_this_error(__builtin_return_address(0))) return; \ + if (!report_this_error(GET_CALLER_PC())) return; \ message("ubsan: " msg "\n"); \ } |