From 9ded5d5193ebe61fc7bab77021faaafe0fd0e1b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Witold=20Kr=C4=99cicki?= Date: Wed, 30 Jan 2019 11:21:30 +0100 Subject: [PATCH] Cast atomic_load_explicit to proper size --- lib/isc/win32/include/isc/stdatomic.h | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/isc/win32/include/isc/stdatomic.h b/lib/isc/win32/include/isc/stdatomic.h index a38eb2ecca..1d933e55e9 100644 --- a/lib/isc/win32/include/isc/stdatomic.h +++ b/lib/isc/win32/include/isc/stdatomic.h @@ -146,14 +146,18 @@ atomic_load_abort() { ISC_UNREACHABLE(); } -#define atomic_load_explicit(obj, order) \ - (sizeof(*(obj)) == 8 \ - ? atomic_load_explicit64(obj, order) \ - : (sizeof(*(obj) == 4) \ - ? atomic_load_explicit32(obj, order) \ - : (sizeof(*(obj) == 1) \ - ? atomic_load_explicit8(obj, order) \ - : atomic_load_abort()))) +#define atomic_load_explicit(obj, order) \ + ((sizeof(*(obj)) == 8 \ + ? atomic_load_explicit64(obj, order) \ + : (sizeof(*(obj) == 4) \ + ? atomic_load_explicit32(obj, order) \ + : (sizeof(*(obj) == 1) \ + ? atomic_load_explicit8(obj, order) \ + : atomic_load_abort()))) & \ + (sizeof(*(obj)) == 8 ? 0xffffffffffffffffULL : \ + (sizeof(*(obj)) == 4 ? 0xffffffffULL : \ + (sizeof(*(obj)) == 1 ? 0xffULL : atomic_load_abort())))) + #define atomic_load(obj) \ atomic_load_explicit(obj, memory_order_seq_cst)