27#define __has_feature(x) 0
29#ifndef __has_extension
30#define __has_extension __has_feature
33#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
34#include <sanitizer/asan_interface.h>
58#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
60 __asan_poison_memory_region(addr, size);
63 __asan_unpoison_memory_region(addr, size);
67 auto* beg =
const_cast<void*
>(addr);
68 return nullptr != __asan_region_is_poisoned(beg, size);
72 [[maybe_unused]]
size_t size) {
79 [[maybe_unused]]
size_t size) {
85 [[maybe_unused]]
size_t size) {
static bool RegionIsPoisoned(const volatile void *addr, size_t size)
ASan(const ASan &)=delete
ASan & operator=(const ASan &)=delete
static void PoisonMemoryRegion(const volatile void *addr, size_t size)
static void UnPoisonMemoryRegion(const volatile void *addr, size_t size)
ASan & operator=(ASan &&)=delete