From 9ac355ad513b3daba6eb392d765e3475d2cc35f9 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Tue, 8 Feb 2022 12:27:22 +0600 Subject: [PATCH] core/utils.h: wrap OSMO_ASSERT() with do { ... } while (0) Using do-while is a common practice for complex macros. This allows invoking OSMO_ASSERT in simple if-else statements without braces. Change-Id: I42d9c315c9c30bce828564a63c496ee62e5c1431 --- include/osmocom/core/utils.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index 7625da167..182da08de 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -111,9 +111,11 @@ do { \ * the predicate evaluates to false (0). */ #define OSMO_ASSERT(exp) \ +do { \ if (!(exp)) { \ osmo_panic("Assert failed %s %s:%d\n", #exp, __FILE__, __LINE__); \ - } + } \ +} while (0); /* some code invokes OSMO_ASSERT() without the semicolon */ /*! duplicate a string using talloc and release its prior content (if any) * \param[in] ctx Talloc context to use for allocation