mirror of
https://github.com/apache/nuttx.git
synced 2026-06-04 23:03:27 +08:00
mm_ubsan: add dummy to bypass runtime actions
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
This commit is contained in:
@@ -338,6 +338,13 @@ config MM_UBSAN_TRAP_ON_ERROR
|
||||
The undefined instruction trap should cause your program to crash,
|
||||
save the code space significantly.
|
||||
|
||||
config MM_UBSAN_DUMMY
|
||||
bool "Bypass Undefined Behaviour Sanitizer Runtime Actions"
|
||||
default n
|
||||
depends on MM_UBSAN
|
||||
---help---
|
||||
Keep UBSAN compile time but disable runtime actions.
|
||||
|
||||
config MM_FILL_ALLOCATIONS
|
||||
bool "Fill allocations with debug value"
|
||||
default n
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
|
||||
#include "ubsan.h"
|
||||
|
||||
#ifndef CONFIG_MM_UBSAN_DUMMY
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
@@ -388,3 +390,79 @@ void __ubsan_handle_dynamic_type_cache_miss(FAR void *data,
|
||||
{
|
||||
ubsan_prologue_epilogue(data, "dynamic-type-cache-miss");
|
||||
}
|
||||
|
||||
#else
|
||||
void __ubsan_handle_out_of_bounds(FAR void *data, FAR void *index)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_shift_out_of_bounds(FAR void *data,
|
||||
FAR void *lhs, FAR void *rhs)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_divrem_overflow(FAR void *data,
|
||||
FAR void *lhs, FAR void *rhs)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_alignment_assumption(FAR void *data, uintptr_t ptr,
|
||||
uintptr_t align, uintptr_t offset)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_type_mismatch(FAR struct type_mismatch_data *data,
|
||||
FAR void *ptr)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_type_mismatch_v1(FAR void *_data, FAR void *ptr)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_builtin_unreachable(FAR void *data)
|
||||
{
|
||||
PANIC();
|
||||
}
|
||||
|
||||
void __ubsan_handle_nonnull_arg(FAR void *data)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_add_overflow(FAR void *data,
|
||||
FAR void *lhs, FAR void *rhs)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_sub_overflow(FAR void *data,
|
||||
FAR void *lhs, FAR void *rhs)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_mul_overflow(FAR void *data,
|
||||
FAR void *lhs, FAR void *rhs)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_load_invalid_value(FAR void *data, FAR void *ptr)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_negate_overflow(FAR void *data, FAR void *ptr)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_pointer_overflow(FAR void *data,
|
||||
FAR void *ptr, FAR void *result)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_invalid_builtin(FAR void *data)
|
||||
{
|
||||
}
|
||||
|
||||
void __ubsan_handle_dynamic_type_cache_miss(FAR void *data,
|
||||
FAR void *ptr, FAR void *hash)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user