public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
* [PATCH] util: Fix changes to assert_with_msg()
@ 2026-05-17  1:07 David Gibson
  2026-05-17 12:49 ` Stefano Brivio
  0 siblings, 1 reply; 2+ messages in thread
From: David Gibson @ 2026-05-17  1:07 UTC (permalink / raw)
  To: passt-dev, Stefano Brivio; +Cc: David Gibson

A last minute fixup to commit e51494552b78 was misapplied.  Instead of
improving the implementation of assert_with_msg() for the case where
NDEBUG is defined, it effectively eliminated assert_with_msg() in the
normal case where NDEBUG is _not_ defined.  As well as removing assert()s
which protect us in case of certian types of bug, this introduces some
cppcheck and clang-tidy regressions.

Fixes: e51494552b78 ("Fix build with -DNDEBUG")
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 util.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/util.h b/util.h
index a9dcc04c..144dc1e6 100644
--- a/util.h
+++ b/util.h
@@ -51,7 +51,7 @@ void abort_with_msg(const char *fmt, ...)
  */
 #ifndef NDEBUG
 #define assert_with_msg(expr, ...)					\
-	(1 ? (void)0 : ((void)(expr), abort_with_msg(__VA_ARGS__)))
+	((expr) ? (void)0 : abort_with_msg(__VA_ARGS__))
 /* The standard library assert() hits our seccomp filter and dies before it can
  * actually print a message.  So, replace it with our own version.
  */
@@ -61,7 +61,7 @@ void abort_with_msg(const char *fmt, ...)
 			__func__, __FILE__, __LINE__, STRINGIFY(expr))
 #else
 #define assert_with_msg(expr, ...)					\
-	((void)(expr), 1 ? (void)0 : abort_with_msg(__VA_ARGS__))
+	(1 ? (void)0 : ((void)(expr), abort_with_msg(__VA_ARGS__)))
 #endif
 
 #ifdef P_tmpdir
-- 
2.54.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] util: Fix changes to assert_with_msg()
  2026-05-17  1:07 [PATCH] util: Fix changes to assert_with_msg() David Gibson
@ 2026-05-17 12:49 ` Stefano Brivio
  0 siblings, 0 replies; 2+ messages in thread
From: Stefano Brivio @ 2026-05-17 12:49 UTC (permalink / raw)
  To: David Gibson; +Cc: passt-dev, Jan Palus

[Cc: Jan with full quote]

On Sun, 17 May 2026 11:07:40 +1000
David Gibson <david@gibson.dropbear.id.au> wrote:

> A last minute fixup to commit e51494552b78 was misapplied.  Instead of
> improving the implementation of assert_with_msg() for the case where
> NDEBUG is defined, it effectively eliminated assert_with_msg() in the
> normal case where NDEBUG is _not_ defined.  As well as removing assert()s
> which protect us in case of certian types of bug, this introduces some
> cppcheck and clang-tidy regressions.
> 
> Fixes: e51494552b78 ("Fix build with -DNDEBUG")
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>

Oops, sorry, I think I misread the "#ifndef NDEBUG" and read it as
"#ifdef NDEBUG". :(

Applied, thanks for spotting this.

> ---
>  util.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/util.h b/util.h
> index a9dcc04c..144dc1e6 100644
> --- a/util.h
> +++ b/util.h
> @@ -51,7 +51,7 @@ void abort_with_msg(const char *fmt, ...)
>   */
>  #ifndef NDEBUG
>  #define assert_with_msg(expr, ...)					\
> -	(1 ? (void)0 : ((void)(expr), abort_with_msg(__VA_ARGS__)))
> +	((expr) ? (void)0 : abort_with_msg(__VA_ARGS__))
>  /* The standard library assert() hits our seccomp filter and dies before it can
>   * actually print a message.  So, replace it with our own version.
>   */
> @@ -61,7 +61,7 @@ void abort_with_msg(const char *fmt, ...)
>  			__func__, __FILE__, __LINE__, STRINGIFY(expr))
>  #else
>  #define assert_with_msg(expr, ...)					\
> -	((void)(expr), 1 ? (void)0 : abort_with_msg(__VA_ARGS__))
> +	(1 ? (void)0 : ((void)(expr), abort_with_msg(__VA_ARGS__)))
>  #endif
>  
>  #ifdef P_tmpdir

-- 
Stefano


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-05-17 12:49 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-17  1:07 [PATCH] util: Fix changes to assert_with_msg() David Gibson
2026-05-17 12:49 ` Stefano Brivio

Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).