diff --git a/lib/libspl/include/assert.h b/lib/libspl/include/assert.h index 9073b41f3a..7f145b89a3 100644 --- a/lib/libspl/include/assert.h +++ b/lib/libspl/include/assert.h @@ -65,12 +65,13 @@ extern void __assert(const char *, const char *, int); /* BEGIN CSTYLED */ #define VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE) do { \ - if (!((TYPE)(LEFT) OP (TYPE)(RIGHT))) { \ + const TYPE __left = (TYPE)(LEFT); \ + const TYPE __right = (TYPE)(RIGHT); \ + if (!(__left OP __right)) { \ char *__buf = alloca(256); \ (void) snprintf(__buf, 256, "%s %s %s (0x%llx %s 0x%llx)", \ #LEFT, #OP, #RIGHT, \ - (u_longlong_t)((TYPE)(LEFT)), #OP, \ - (u_longlong_t)((TYPE)(RIGHT))); \ + (u_longlong_t)__left, #OP, (u_longlong_t)__right); \ __assert(__buf, __FILE__, __LINE__); \ } \ } while (0)