18# define __has_feature(x) 0
21#if (defined(__SANITIZE_ADDRESS__) || __has_feature(address_sanitizer)) && \
22 (!defined(_MSC_VER) || _MSC_VER > 1929)
23# include "sanitizer/asan_interface.h"
27# define ASAN_POISON_MEMORY_REGION(addr, size) (void)(0 && ((size) != 0 && (addr) != NULL))
28# define ASAN_UNPOISON_MEMORY_REGION(addr, size) (void)(0 && ((size) != 0 && (addr) != NULL))
36 const size_t high_bits =
SIZE_MAX << (
sizeof(size_t) * 8 / 2);
40 return (a == 0 ||
b == 0);
49 return ((high_bits & (a |
b)) == 0 || (*result /
b == a));
61 if (address ==
nullptr) {
62# ifdef WITH_ASSERT_ABORT
70 char *buffer =
const_cast<char *
>(
static_cast<const char *
>(address));
71 const char c = *buffer;
76# ifdef WITH_ASSERT_ABORT
84# ifdef WITH_ASSERT_ABORT
local_group_size(16, 16) .push_constant(Type b
#define ASAN_POISON_MEMORY_REGION(addr, size)
MEM_INLINE bool MEM_size_safe_multiply(size_t a, size_t b, size_t *result)
#define ASAN_UNPOISON_MEMORY_REGION(addr, size)
MEM_INLINE void MEM_trigger_error_on_memory_block(const void *, const size_t)