@@ -127,62 +127,38 @@ void NORETURN CheckFailed(const char *file, int, const char *cond, u64, u64) {
127127
128128#define INTERFACE extern " C" __attribute__((visibility(" default" )))
129129
130- #define HANDLER_RECOVER (name, kind ) \
130+ #define UBSAN_HANDLER_RECOVER (name, kind ) \
131131 INTERFACE void __ubsan_handle_##name##_minimal() { \
132132 __ubsan_report_error (kind, GET_CALLER_PC (), nullptr ); \
133133 }
134134
135- #define HANDLER_NORECOVER (name, kind ) \
135+ #define UBSAN_HANDLER_NORECOVER (name, kind ) \
136136 INTERFACE void __ubsan_handle_##name##_minimal_abort() { \
137137 uintptr_t caller = GET_CALLER_PC (); \
138138 __ubsan_report_error_fatal (kind, caller, nullptr ); \
139139 abort_with_message (kind, caller, nullptr ); \
140140 }
141141
142- #define HANDLER (name, kind ) \
143- HANDLER_RECOVER (name, kind) \
144- HANDLER_NORECOVER (name, kind)
142+ #define UBSAN_HANDLER (name, kind ) \
143+ UBSAN_HANDLER_RECOVER (name, kind) \
144+ UBSAN_HANDLER_NORECOVER (name, kind)
145145
146- #define HANDLER_RECOVER_PTR (name, kind ) \
146+ #define UBSAN_HANDLER_RECOVER_PTR (name, kind ) \
147147 INTERFACE void __ubsan_handle_##name##_minimal(const uintptr_t address) { \
148148 __ubsan_report_error (kind, GET_CALLER_PC (), &address); \
149149 }
150150
151- #define HANDLER_NORECOVER_PTR (name, kind ) \
151+ #define UBSAN_HANDLER_NORECOVER_PTR (name, kind ) \
152152 INTERFACE void __ubsan_handle_##name##_minimal_abort( \
153153 const uintptr_t address) { \
154154 uintptr_t caller = GET_CALLER_PC (); \
155155 __ubsan_report_error_fatal (kind, caller, &address); \
156156 abort_with_message (kind, caller, &address); \
157157 }
158158
159- // A version of a handler that takes a pointer to a value.
160- #define HANDLER_PTR (name, kind ) \
161- HANDLER_RECOVER_PTR (name, kind) \
162- HANDLER_NORECOVER_PTR(name, kind)
163-
164- HANDLER_PTR(type_mismatch, " type-mismatch" )
165- HANDLER(alignment_assumption, " alignment-assumption" )
166- HANDLER(add_overflow, " add-overflow" )
167- HANDLER(sub_overflow, " sub-overflow" )
168- HANDLER(mul_overflow, " mul-overflow" )
169- HANDLER(negate_overflow, " negate-overflow" )
170- HANDLER(divrem_overflow, " divrem-overflow" )
171- HANDLER(shift_out_of_bounds, " shift-out-of-bounds" )
172- HANDLER(out_of_bounds, " out-of-bounds" )
173- HANDLER(local_out_of_bounds, " local-out-of-bounds" )
174- HANDLER_RECOVER(builtin_unreachable, " builtin-unreachable" )
175- HANDLER_RECOVER(missing_return, " missing-return" )
176- HANDLER(vla_bound_not_positive, " vla-bound-not-positive" )
177- HANDLER(float_cast_overflow, " float-cast-overflow" )
178- HANDLER(load_invalid_value, " load-invalid-value" )
179- HANDLER(invalid_builtin, " invalid-builtin" )
180- HANDLER(invalid_objc_cast, " invalid-objc-cast" )
181- HANDLER(function_type_mismatch, " function-type-mismatch" )
182- HANDLER(implicit_conversion, " implicit-conversion" )
183- HANDLER(nonnull_arg, " nonnull-arg" )
184- HANDLER(nonnull_return, " nonnull-return" )
185- HANDLER(nullability_arg, " nullability-arg" )
186- HANDLER(nullability_return, " nullability-return" )
187- HANDLER(pointer_overflow, " pointer-overflow" )
188- HANDLER(cfi_check_fail, " cfi-check-fail" )
159+ // A version of a UBSAN_HANDLER that takes a pointer to a value.
160+ #define UBSAN_HANDLER_PTR (name, kind ) \
161+ UBSAN_HANDLER_RECOVER_PTR (name, kind) \
162+ UBSAN_HANDLER_NORECOVER_PTR(name, kind)
163+
164+ #include " UbsanMinimalHandlers.inc"
0 commit comments