diff options
Diffstat (limited to 'internal.h')
-rw-r--r-- | internal.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/internal.h b/internal.h index 50a20a2bf6..f2c9c238eb 100644 --- a/internal.h +++ b/internal.h @@ -105,6 +105,7 @@ extern "C" { # define __asan_poison_memory_region(x, y) # define __asan_unpoison_memory_region(x, y) # define __asan_region_is_poisoned(x, y) 0 +# define poisoned_object_p(x) 0 #endif #ifdef HAVE_SANITIZER_MSAN_INTERFACE_H @@ -132,6 +133,15 @@ poison_object(VALUE obj) poison_memory_region(ptr, SIZEOF_VALUE); } +#if __has_feature(address_sanitizer) +static inline void * +poisoned_object_p(VALUE obj) +{ + struct RVALUE *ptr = (void *)obj; + return __asan_region_is_poisoned(ptr, SIZEOF_VALUE); +} +#endif + static inline void unpoison_memory_region(const volatile void *ptr, size_t size, bool malloc_p) { |