Skip to content

Commit

Permalink
libspl: ASSERT*: !! for sizeof
Browse files Browse the repository at this point in the history
sizeof(bitfield.member) is invalid, and this shows up in some FreeBSD
build configurations: work around this by !!ing ‒
this makes the sizeof target the ! result type (_Bool), instead

Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Ahelenia Ziemiańska <[email protected]>
Fixes: 42aaf0e ("libspl: ASSERT*: mark arguments as used")
Closes #12984
Closes #12986
  • Loading branch information
nabijaczleweli authored Jan 21, 2022
1 parent 5a4d282 commit bc40713
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 25 deletions.
16 changes: 8 additions & 8 deletions include/os/freebsd/spl/sys/debug.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)))
#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)))

/*
* Debugging enabled (--enable-debug)
Expand Down
16 changes: 8 additions & 8 deletions include/os/linux/spl/sys/debug.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)))
#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)))

/*
* Debugging enabled (--enable-debug)
Expand Down
18 changes: 9 additions & 9 deletions lib/libspl/include/assert.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)), (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)))
#else
#define ASSERT3B VERIFY3B
#define ASSERT3S VERIFY3S
Expand Down

0 comments on commit bc40713

Please sign in to comment.