Skip to content

Commit 1947467

Browse files
authored
[UBSan] [min-rt] make minimal runtime handlers weak (#154220)
This allows people to override them, if they want.
1 parent 2c79dc1 commit 1947467

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,13 @@ void NORETURN CheckFailed(const char *file, int, const char *cond, u64, u64) {
125125
} // namespace __sanitizer
126126
#endif
127127

128-
#define INTERFACE extern "C" __attribute__((visibility("default")))
129-
130128
#define HANDLER_RECOVER(name, kind) \
131-
INTERFACE void __ubsan_handle_##name##_minimal() { \
129+
SANITIZER_INTERFACE_WEAK_DEF(void, __ubsan_handle_##name##_minimal) { \
132130
__ubsan_report_error(kind, GET_CALLER_PC(), nullptr); \
133131
}
134132

135133
#define HANDLER_NORECOVER(name, kind) \
136-
INTERFACE void __ubsan_handle_##name##_minimal_abort() { \
134+
SANITIZER_INTERFACE_WEAK_DEF(void, __ubsan_handle_##name##_minimal_abort) { \
137135
uintptr_t caller = GET_CALLER_PC(); \
138136
__ubsan_report_error_fatal(kind, caller, nullptr); \
139137
abort_with_message(kind, caller, nullptr); \
@@ -144,13 +142,14 @@ void NORETURN CheckFailed(const char *file, int, const char *cond, u64, u64) {
144142
HANDLER_NORECOVER(name, kind)
145143

146144
#define HANDLER_RECOVER_PTR(name, kind) \
147-
INTERFACE void __ubsan_handle_##name##_minimal(const uintptr_t address) { \
145+
SANITIZER_INTERFACE_WEAK_DEF(void, __ubsan_handle_##name##_minimal, \
146+
const uintptr_t address) { \
148147
__ubsan_report_error(kind, GET_CALLER_PC(), &address); \
149148
}
150149

151150
#define HANDLER_NORECOVER_PTR(name, kind) \
152-
INTERFACE void __ubsan_handle_##name##_minimal_abort( \
153-
const uintptr_t address) { \
151+
SANITIZER_INTERFACE_WEAK_DEF(void, __ubsan_handle_##name##_minimal_abort, \
152+
const uintptr_t address) { \
154153
uintptr_t caller = GET_CALLER_PC(); \
155154
__ubsan_report_error_fatal(kind, caller, &address); \
156155
abort_with_message(kind, caller, &address); \

0 commit comments

Comments
 (0)