* [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).