Go to the documentation of this file. 36 #ifndef SECP256K1_CHECKMEM_H 37 #define SECP256K1_CHECKMEM_H 40 #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0) 45 #if defined(__has_feature) 46 # if __has_feature(memory_sanitizer) 47 # include <sanitizer/msan_interface.h> 48 # define SECP256K1_CHECKMEM_ENABLED 1 49 # define SECP256K1_CHECKMEM_UNDEFINE(p, len) __msan_allocated_memory((p), (len)) 50 # define SECP256K1_CHECKMEM_DEFINE(p, len) __msan_unpoison((p), (len)) 51 # define SECP256K1_CHECKMEM_CHECK(p, len) __msan_check_mem_is_initialized((p), (len)) 52 # define SECP256K1_CHECKMEM_RUNNING() (1) 58 #if !defined SECP256K1_CHECKMEM_ENABLED 61 # include <valgrind/memcheck.h> 62 # define SECP256K1_CHECKMEM_ENABLED 1 63 # define SECP256K1_CHECKMEM_UNDEFINE(p, len) VALGRIND_MAKE_MEM_UNDEFINED((p), (len)) 64 # define SECP256K1_CHECKMEM_DEFINE(p, len) VALGRIND_MAKE_MEM_DEFINED((p), (len)) 65 # define SECP256K1_CHECKMEM_CHECK(p, len) VALGRIND_CHECK_MEM_IS_DEFINED((p), (len)) 69 # define SECP256K1_CHECKMEM_RUNNING() (VALGRIND_MAKE_MEM_DEFINED(NULL, 0) != 0) 74 #if !defined SECP256K1_CHECKMEM_ENABLED 75 # define SECP256K1_CHECKMEM_ENABLED 0 76 # define SECP256K1_CHECKMEM_UNDEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len)) 77 # define SECP256K1_CHECKMEM_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len)) 78 # define SECP256K1_CHECKMEM_CHECK(p, len) SECP256K1_CHECKMEM_NOOP((p), (len)) 79 # define SECP256K1_CHECKMEM_RUNNING() (0) 83 #define SECP256K1_CHECKMEM_CHECK_VERIFY(p, len) SECP256K1_CHECKMEM_CHECK((p), (len)) 85 #define SECP256K1_CHECKMEM_CHECK_VERIFY(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))