Loading...
Searching...
No Matches
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))