#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