#ifndef LLVM_LIBC_SRC___SUPPORT_MACROS_SANITIZER_H
#define LLVM_LIBC_SRC___SUPPORT_MACROS_SANITIZER_H
#include "src/__support/macros/config.h"
#if LIBC_HAS_FEATURE(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
#define LIBC_HAS_ADDRESS_SANITIZER
#endif
#if LIBC_HAS_FEATURE(memory_sanitizer)
#define LIBC_HAS_MEMORY_SANITIZER
#endif
#if LIBC_HAS_FEATURE(undefined_behavior_sanitizer)
#define LIBC_HAS_UNDEFINED_BEHAVIOR_SANITIZER
#endif
#if defined(LIBC_HAS_ADDRESS_SANITIZER) || \
defined(LIBC_HAS_MEMORY_SANITIZER) || \
defined(LIBC_HAS_UNDEFINED_BEHAVIOR_SANITIZER)
#define LIBC_HAS_SANITIZER
#endif
#ifdef LIBC_HAS_MEMORY_SANITIZER
#include <sanitizer/msan_interface.h>
#define MSAN_UNPOISON …
#else
#define MSAN_UNPOISON(ptr, size) …
#endif
#ifdef LIBC_HAS_ADDRESS_SANITIZER
#include <sanitizer/asan_interface.h>
#define ASAN_POISON_MEMORY_REGION …
#define ASAN_UNPOISON_MEMORY_REGION …
#else
#define ASAN_POISON_MEMORY_REGION(addr, size) …
#define ASAN_UNPOISON_MEMORY_REGION(addr, size) …
#endif
#endif