//===-- Convenient sanitizer macros -----------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_LIBC_SRC___SUPPORT_MACROS_SANITIZER_H #define LLVM_LIBC_SRC___SUPPORT_MACROS_SANITIZER_H #include "src/__support/macros/config.h" //LIBC_HAS_FEATURE //----------------------------------------------------------------------------- // Functions to unpoison memory //----------------------------------------------------------------------------- #if LIBC_HAS_FEATURE(memory_sanitizer) // Only perform MSAN unpoison in non-constexpr context. #include <sanitizer/msan_interface.h> #define MSAN_UNPOISON … #else #define MSAN_UNPOISON(ptr, size) … #endif #if LIBC_HAS_FEATURE(address_sanitizer) #define LIBC_HAVE_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 // LLVM_LIBC_SRC___SUPPORT_MACROS_SANITIZER_H