From 517ae1be7b43f883b1796cea52354ad9bd246a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= Date: Wed, 19 Jan 2022 00:52:04 +0100 Subject: [PATCH] libspl: ASSERT*: +0 for sizeof MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sizeof(bitfield.member) is invalid, and this shows up in some FreeBSD build configurations: work around this by +0ing ‒ this takes the size of the arithmetic result type, instead Fixes: 42aaf0e ("libspl: ASSERT*: mark arguments as used") Closes: #12984 Signed-off-by: Ahelenia Ziemiańska --- include/os/freebsd/spl/sys/debug.h | 16 ++++++++-------- include/os/linux/spl/sys/debug.h | 16 ++++++++-------- lib/libspl/include/assert.h | 18 +++++++++--------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/include/os/freebsd/spl/sys/debug.h b/include/os/freebsd/spl/sys/debug.h index 6a0c2fe07965..1c57b18441da 100644 --- a/include/os/freebsd/spl/sys/debug.h +++ b/include/os/freebsd/spl/sys/debug.h @@ -133,14 +133,14 @@ void spl_dumpstack(void); */ #ifdef NDEBUG -#define ASSERT(x) ((void)sizeof(x)) -#define ASSERT3B(x,y,z) ((void)sizeof(x), (void)sizeof(z)) -#define ASSERT3S(x,y,z) ((void)sizeof(x), (void)sizeof(z)) -#define ASSERT3U(x,y,z) ((void)sizeof(x), (void)sizeof(z)) -#define ASSERT3P(x,y,z) ((void)sizeof(x), (void)sizeof(z)) -#define ASSERT0(x) ((void)sizeof(x)) -#define IMPLY(A, B) ((void)sizeof(A), (void)sizeof(B)) -#define EQUIV(A, B) ((void)sizeof(A), (void)sizeof(B)) +#define ASSERT(x) ((void) sizeof (x + 0)) +#define ASSERT3B(x,y,z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT3S(x,y,z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT3U(x,y,z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT3P(x,y,z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT0(x) ((void) sizeof (x + 0)) +#define IMPLY(A, B) ((void) sizeof (A + 0), (void) sizeof (B + 0)) +#define EQUIV(A, B) ((void) sizeof (A + 0), (void) sizeof (B + 0)) /* * Debugging enabled (--enable-debug) diff --git a/include/os/linux/spl/sys/debug.h b/include/os/linux/spl/sys/debug.h index e3cbf62d1302..a517fef92ac5 100644 --- a/include/os/linux/spl/sys/debug.h +++ b/include/os/linux/spl/sys/debug.h @@ -133,14 +133,14 @@ void spl_dumpstack(void); */ #ifdef NDEBUG -#define ASSERT(x) ((void)sizeof(x)) -#define ASSERT3B(x,y,z) ((void)sizeof(x), (void)sizeof(z)) -#define ASSERT3S(x,y,z) ((void)sizeof(x), (void)sizeof(z)) -#define ASSERT3U(x,y,z) ((void)sizeof(x), (void)sizeof(z)) -#define ASSERT3P(x,y,z) ((void)sizeof(x), (void)sizeof(z)) -#define ASSERT0(x) ((void)sizeof(x)) -#define IMPLY(A, B) ((void)sizeof(A), (void)sizeof(B)) -#define EQUIV(A, B) ((void)sizeof(A), (void)sizeof(B)) +#define ASSERT(x) ((void) sizeof (x + 0)) +#define ASSERT3B(x,y,z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT3S(x,y,z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT3U(x,y,z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT3P(x,y,z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT0(x) ((void) sizeof (x + 0)) +#define IMPLY(A, B) ((void) sizeof (A + 0), (void) sizeof (B + 0)) +#define EQUIV(A, B) ((void) sizeof (A + 0), (void) sizeof (B + 0)) /* * Debugging enabled (--enable-debug) diff --git a/lib/libspl/include/assert.h b/lib/libspl/include/assert.h index 2a6e8a1e4e4f..5996ece0bb27 100644 --- a/lib/libspl/include/assert.h +++ b/lib/libspl/include/assert.h @@ -120,15 +120,15 @@ do { \ __compile_time_assertion__ ## y[(x) ? 1 : -1] #ifdef NDEBUG -#define ASSERT3B(x, y, z) ((void) sizeof (x), (void) sizeof (z)) -#define ASSERT3S(x, y, z) ((void) sizeof (x), (void) sizeof (z)) -#define ASSERT3U(x, y, z) ((void) sizeof (x), (void) sizeof (z)) -#define ASSERT3P(x, y, z) ((void) sizeof (x), (void) sizeof (z)) -#define ASSERT0(x) ((void) sizeof (x)) -#define ASSERT(x) ((void) sizeof (x)) -#define assert(x) ((void) sizeof (x)) -#define IMPLY(A, B) ((void) sizeof (A), (void) sizeof (B)) -#define EQUIV(A, B) ((void) sizeof (A), (void) sizeof (B)) +#define ASSERT3B(x, y, z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT3S(x, y, z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT3U(x, y, z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT3P(x, y, z) ((void) sizeof (x + 0), (void) sizeof (z + 0)) +#define ASSERT0(x) ((void) sizeof (x + 0)) +#define ASSERT(x) ((void) sizeof (x + 0)) +#define assert(x) ((void) sizeof (x + 0)) +#define IMPLY(A, B) ((void) sizeof (A + 0), (void) sizeof (B + 0)) +#define EQUIV(A, B) ((void) sizeof (A + 0), (void) sizeof (B + 0)) #else #define ASSERT3B VERIFY3B #define ASSERT3S VERIFY3S