blob: 0d5ce0d394d75b02b2755731f4b1289a8dace9b1 [file] [log] [blame]
#pragma once
// Detect address sanitizer as some stuff doesn't work with it
#undef CAFFE2_ASAN_ENABLED
// for clang
#if defined(__has_feature)
#if ((__has_feature(address_sanitizer)))
#define CAFFE2_ASAN_ENABLED 1
#endif
#endif
// for gcc
#if defined(__SANITIZE_ADDRESS__)
#if __SANITIZE_ADDRESS__
#if !defined(CAFFE2_ASAN_ENABLED)
#define CAFFE2_ASAN_ENABLED 1
#endif
#endif
#endif
#if !defined(CAFFE2_ASAN_ENABLED)
#define CAFFE2_ASAN_ENABLED 0
#endif
// Define sanitization macro
#if !CAFFE2_ASAN_ENABLED
#define CAFFE2_NO_SANITIZE(...)
#else
#define CAFFE2_NO_SANITIZE(...) __attribute__((no_sanitize(__VA_ARGS__)))
#endif