aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Kudrin <ikudrin@accesssoftek.com>2022-08-23 21:39:27 +0400
committerIgor Kudrin <ikudrin@accesssoftek.com>2022-08-23 21:39:27 +0400
commit1959a55591dac8f698b6c86cb39724a1a13484ab (patch)
tree431507cbf19496ede296dbd2abe2c652f0e67b7e
parent75767a0f9a926641edbef08e31ec2148ff45da67 (diff)
downloadllvm-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.cpp8
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"); \
}