Skip to content

Commit 6894c96

Browse files
Fix Clang 21+ -Wuninitialized-const-pointer warning when using MSan
Co-authored-by: Tim Ruffing <[email protected]>
1 parent 2b7337f commit 6894c96

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/checkmem.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,17 @@
4848
# if __has_feature(memory_sanitizer)
4949
# include <sanitizer/msan_interface.h>
5050
# define SECP256K1_CHECKMEM_ENABLED 1
51-
# define SECP256K1_CHECKMEM_UNDEFINE(p, len) __msan_allocated_memory((p), (len))
51+
# if defined(__clang__) && ((__clang_major__ == 21 && __clang_minor__ >= 1) || __clang_major__ >= 22)
52+
# define SECP256K1_CHECKMEM_UNDEFINE(p, len) do { \
53+
/* Work around https://github.com/llvm/llvm-project/issues/160094 */ \
54+
_Pragma("clang diagnostic push") \
55+
_Pragma("clang diagnostic ignored \"-Wuninitialized-const-pointer\"") \
56+
__msan_allocated_memory((p), (len)); \
57+
_Pragma("clang diagnostic pop") \
58+
} while(0)
59+
# else
60+
# define SECP256K1_CHECKMEM_UNDEFINE(p, len) __msan_allocated_memory((p), (len))
61+
# endif
5262
# define SECP256K1_CHECKMEM_DEFINE(p, len) __msan_unpoison((p), (len))
5363
# define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) __msan_unpoison((p), (len))
5464
# define SECP256K1_CHECKMEM_CHECK(p, len) __msan_check_mem_is_initialized((p), (len))

0 commit comments

Comments
 (0)