13#ifdef __SANITIZE_ADDRESS__
14 #define SK_SANITIZE_ADDRESS 1
16#if !defined(SK_SANITIZE_ADDRESS) && defined(__has_feature)
17 #if __has_feature(address_sanitizer)
18 #define SK_SANITIZE_ADDRESS 1
23#ifdef SK_SANITIZE_ADDRESS
25 void __asan_poison_memory_region(
void const volatile *addr,
size_t size);
26 void __asan_unpoison_memory_region(
void const volatile *addr,
size_t size);
27 int __asan_address_is_poisoned(
void const volatile *addr);
35 [[maybe_unused]]
size_t size) {
36#ifdef SK_SANITIZE_ADDRESS
37 __asan_poison_memory_region(addr, size);
42 [[maybe_unused]]
size_t size) {
43#ifdef SK_SANITIZE_ADDRESS
44 __asan_unpoison_memory_region(addr, size);
49#ifdef SK_SANITIZE_ADDRESS
50 return __asan_address_is_poisoned(addr);
static void sk_asan_poison_memory_region(void const volatile *addr, size_t size)
static int sk_asan_address_is_poisoned(void const volatile *addr)
static void sk_asan_unpoison_memory_region(void const volatile *addr, size_t size)