//===- Msan.h - Utils related to the memory sanitizer ---------------------===// // // 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 // //===----------------------------------------------------------------------===// // // This file declares and defines macros related to msan. // //===----------------------------------------------------------------------===// #ifndef MLIR_EXECUTIONENGINE_MSAN_H #define MLIR_EXECUTIONENGINE_MSAN_H // Memory sanitizer currently can't be enabled for the jit-compiled code, and // to suppress msan warnings we need to unpoison pointers and pointed-to // datastructures before they can be accessed. #ifndef __has_feature #define __has_feature … #endif #if __has_feature(memory_sanitizer) && !defined(MLIR_MEMORY_SANITIZER) #define MLIR_MEMORY_SANITIZER #endif #if defined(MLIR_MEMORY_SANITIZER) #include <sanitizer/msan_interface.h> #define MLIR_MSAN_MEMORY_IS_INITIALIZED … #else // Memory sanitizer: OFF #define MLIR_MSAN_MEMORY_IS_INITIALIZED(p, s) … #endif // MLIR_MEMORY_SANITIZER #endif // MLIR_EXECUTIONENGINE_MSAN_H