llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-compiler-rt-sanitizer Author: Florian Mayer (fmayer) <details> <summary>Changes</summary> --- Full diff: https://github.com/llvm/llvm-project/pull/170793.diff 1 Files Affected: - (added) compiler-rt/test/ubsan_minimal/TestCases/handlers-link.c (+170) ``````````diff diff --git a/compiler-rt/test/ubsan_minimal/TestCases/handlers-link.c b/compiler-rt/test/ubsan_minimal/TestCases/handlers-link.c new file mode 100644 index 0000000000000..43f6687c74634 --- /dev/null +++ b/compiler-rt/test/ubsan_minimal/TestCases/handlers-link.c @@ -0,0 +1,170 @@ +// RUN: %clang_min_runtime -fsanitize=undefined %s -o /dev/null + +void __ubsan_handle_add_overflow_minimal(); +void __ubsan_handle_alignment_assumption_minimal(); +void __ubsan_handle_builtin_unreachable_minimal(); +void __ubsan_handle_cfi_check_fail_minimal(); +void __ubsan_handle_divrem_overflow_minimal(); +void __ubsan_handle_float_cast_overflow_minimal(); +void __ubsan_handle_function_type_mismatch_minimal(); +void __ubsan_handle_implicit_conversion_minimal(); +void __ubsan_handle_invalid_builtin_minimal(); +void __ubsan_handle_invalid_objc_cast_minimal(); +void __ubsan_handle_load_invalid_value_minimal(); +void __ubsan_handle_local_out_of_bounds_minimal(); +void __ubsan_handle_missing_return_minimal(); +void __ubsan_handle_mul_overflow_minimal(); +void __ubsan_handle_negate_overflow_minimal(); +void __ubsan_handle_nonnull_arg_minimal(); +void __ubsan_handle_nonnull_return_minimal(); +void __ubsan_handle_nullability_arg_minimal(); +void __ubsan_handle_nullability_return_minimal(); +void __ubsan_handle_out_of_bounds_minimal(); +void __ubsan_handle_pointer_overflow_minimal(); +void __ubsan_handle_shift_out_of_bounds_minimal(); +void __ubsan_handle_sub_overflow_minimal(); +void __ubsan_handle_type_mismatch_minimal(); +void __ubsan_handle_vla_bound_not_positive_minimal(); +void __ubsan_report_error(); + +void __ubsan_handle_alignment_assumption_minimal_abort(); +// This one doesn't exist, it is recover only. +// void __ubsan_handle_builtin_unreachable_minimal_abort(); +void __ubsan_handle_cfi_check_fail_minimal_abort(); +void __ubsan_handle_divrem_overflow_minimal_abort(); +void __ubsan_handle_float_cast_overflow_minimal_abort(); +void __ubsan_handle_function_type_mismatch_minimal_abort(); +void __ubsan_handle_implicit_conversion_minimal_abort(); +void __ubsan_handle_invalid_builtin_minimal_abort(); +void __ubsan_handle_invalid_objc_cast_minimal_abort(); +void __ubsan_handle_load_invalid_value_minimal_abort(); +void __ubsan_handle_local_out_of_bounds_minimal_abort(); +// This one doesn't exist, it is recover only. +// void __ubsan_handle_missing_return_minimal_abort(); +void __ubsan_handle_mul_overflow_minimal_abort(); +void __ubsan_handle_negate_overflow_minimal_abort(); +void __ubsan_handle_nonnull_arg_minimal_abort(); +void __ubsan_handle_nonnull_return_minimal_abort(); +void __ubsan_handle_nullability_arg_minimal_abort(); +void __ubsan_handle_nullability_return_minimal_abort(); +void __ubsan_handle_out_of_bounds_minimal_abort(); +void __ubsan_handle_pointer_overflow_minimal_abort(); +void __ubsan_handle_shift_out_of_bounds_minimal_abort(); +void __ubsan_handle_sub_overflow_minimal_abort(); +void __ubsan_handle_type_mismatch_minimal_abort(); +void __ubsan_handle_vla_bound_not_positive_minimal_abort(); +void __ubsan_report_error_fatal(); + +#if defined(__aarch64__) || defined(__x86_64__) +void __ubsan_handle_add_overflow_minimal_preserve(); +void __ubsan_handle_alignment_assumption_minimal_preserve(); +void __ubsan_handle_builtin_unreachable_minimal_preserve(); +void __ubsan_handle_cfi_check_fail_minimal_preserve(); +void __ubsan_handle_divrem_overflow_minimal_preserve(); +void __ubsan_handle_float_cast_overflow_minimal_preserve(); +void __ubsan_handle_function_type_mismatch_minimal_preserve(); +void __ubsan_handle_implicit_conversion_minimal_preserve(); +void __ubsan_handle_invalid_builtin_minimal_preserve(); +void __ubsan_handle_invalid_objc_cast_minimal_preserve(); +void __ubsan_handle_load_invalid_value_minimal_preserve(); +void __ubsan_handle_local_out_of_bounds_minimal_preserve(); +void __ubsan_handle_missing_return_minimal_preserve(); +void __ubsan_handle_mul_overflow_minimal_preserve(); +void __ubsan_handle_negate_overflow_minimal_preserve(); +void __ubsan_handle_nonnull_arg_minimal_preserve(); +void __ubsan_handle_nonnull_return_minimal_preserve(); +void __ubsan_handle_nullability_arg_minimal_preserve(); +void __ubsan_handle_nullability_return_minimal_preserve(); +void __ubsan_handle_out_of_bounds_minimal_preserve(); +void __ubsan_handle_pointer_overflow_minimal_preserve(); +void __ubsan_handle_shift_out_of_bounds_minimal_preserve(); +void __ubsan_handle_sub_overflow_minimal_preserve(); +void __ubsan_handle_type_mismatch_minimal_preserve(); +void __ubsan_handle_vla_bound_not_positive_minimal_preserve(); +void __ubsan_report_error_preserve(); +#endif +int main(int argc, char **argv) { + __ubsan_handle_add_overflow_minimal(); + __ubsan_handle_alignment_assumption_minimal(); + __ubsan_handle_builtin_unreachable_minimal(); + __ubsan_handle_cfi_check_fail_minimal(); + __ubsan_handle_divrem_overflow_minimal(); + __ubsan_handle_float_cast_overflow_minimal(); + __ubsan_handle_function_type_mismatch_minimal(); + __ubsan_handle_implicit_conversion_minimal(); + __ubsan_handle_invalid_builtin_minimal(); + __ubsan_handle_invalid_objc_cast_minimal(); + __ubsan_handle_load_invalid_value_minimal(); + __ubsan_handle_local_out_of_bounds_minimal(); + __ubsan_handle_missing_return_minimal(); + __ubsan_handle_mul_overflow_minimal(); + __ubsan_handle_negate_overflow_minimal(); + __ubsan_handle_nonnull_arg_minimal(); + __ubsan_handle_nonnull_return_minimal(); + __ubsan_handle_nullability_arg_minimal(); + __ubsan_handle_nullability_return_minimal(); + __ubsan_handle_out_of_bounds_minimal(); + __ubsan_handle_pointer_overflow_minimal(); + __ubsan_handle_shift_out_of_bounds_minimal(); + __ubsan_handle_sub_overflow_minimal(); + __ubsan_handle_type_mismatch_minimal(); + __ubsan_handle_vla_bound_not_positive_minimal(); + __ubsan_report_error(); + + __ubsan_handle_alignment_assumption_minimal_abort(); + // This one doesn't exist, it is recover only. + // __ubsan_handle_builtin_unreachable_minimal_abort(); + __ubsan_handle_cfi_check_fail_minimal_abort(); + __ubsan_handle_divrem_overflow_minimal_abort(); + __ubsan_handle_float_cast_overflow_minimal_abort(); + __ubsan_handle_function_type_mismatch_minimal_abort(); + __ubsan_handle_implicit_conversion_minimal_abort(); + __ubsan_handle_invalid_builtin_minimal_abort(); + __ubsan_handle_invalid_objc_cast_minimal_abort(); + __ubsan_handle_load_invalid_value_minimal_abort(); + __ubsan_handle_local_out_of_bounds_minimal_abort(); + // This one doesn't exist, it is recover only. + // __ubsan_handle_missing_return_minimal_abort(); + __ubsan_handle_mul_overflow_minimal_abort(); + __ubsan_handle_negate_overflow_minimal_abort(); + __ubsan_handle_nonnull_arg_minimal_abort(); + __ubsan_handle_nonnull_return_minimal_abort(); + __ubsan_handle_nullability_arg_minimal_abort(); + __ubsan_handle_nullability_return_minimal_abort(); + __ubsan_handle_out_of_bounds_minimal_abort(); + __ubsan_handle_pointer_overflow_minimal_abort(); + __ubsan_handle_shift_out_of_bounds_minimal_abort(); + __ubsan_handle_sub_overflow_minimal_abort(); + __ubsan_handle_type_mismatch_minimal_abort(); + __ubsan_handle_vla_bound_not_positive_minimal_abort(); + __ubsan_report_error_fatal(); + +#if defined(__aarch64__) || defined(__x86_64__) + __ubsan_handle_add_overflow_minimal_preserve(); + __ubsan_handle_alignment_assumption_minimal_preserve(); + __ubsan_handle_builtin_unreachable_minimal_preserve(); + __ubsan_handle_cfi_check_fail_minimal_preserve(); + __ubsan_handle_divrem_overflow_minimal_preserve(); + __ubsan_handle_float_cast_overflow_minimal_preserve(); + __ubsan_handle_function_type_mismatch_minimal_preserve(); + __ubsan_handle_implicit_conversion_minimal_preserve(); + __ubsan_handle_invalid_builtin_minimal_preserve(); + __ubsan_handle_invalid_objc_cast_minimal_preserve(); + __ubsan_handle_load_invalid_value_minimal_preserve(); + __ubsan_handle_local_out_of_bounds_minimal_preserve(); + __ubsan_handle_missing_return_minimal_preserve(); + __ubsan_handle_mul_overflow_minimal_preserve(); + __ubsan_handle_negate_overflow_minimal_preserve(); + __ubsan_handle_nonnull_arg_minimal_preserve(); + __ubsan_handle_nonnull_return_minimal_preserve(); + __ubsan_handle_nullability_arg_minimal_preserve(); + __ubsan_handle_nullability_return_minimal_preserve(); + __ubsan_handle_out_of_bounds_minimal_preserve(); + __ubsan_handle_pointer_overflow_minimal_preserve(); + __ubsan_handle_shift_out_of_bounds_minimal_preserve(); + __ubsan_handle_sub_overflow_minimal_preserve(); + __ubsan_handle_type_mismatch_minimal_preserve(); + __ubsan_handle_vla_bound_not_positive_minimal_preserve(); + __ubsan_report_error_preserve(); +#endif +} `````````` </details> https://github.com/llvm/llvm-project/pull/170793 _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
