From: Francis Deslauriers Date: Wed, 1 Sep 2021 17:34:17 +0000 (-0400) Subject: Add `urcu_posix_assert()` as `assert()` replacement X-Git-Tag: v0.14.0~68 X-Git-Url: https://git.liburcu.org/?a=commitdiff_plain;h=014775106c60f02818ca755b331f887030bd440f;hp=014775106c60f02818ca755b331f887030bd440f;p=urcu.git Add `urcu_posix_assert()` as `assert()` replacement This macro acts like the regular `assert()` macro unless NDEBUG is defined in which case it consumes the expression and becomes a no-op. This consumption trick (see `_urcu_use_expression()` macro) prevents the compiler from warning about unused variables even when assert() are removed by the NDEBUG define. This macro is also used for the existing `urcu_assert_debug()` macro. The implementation of `_urcu_use_expression()` is inspired by the Babeltrace 2 approach. See `BT_USE_EXPR()` macro and documentation in Babeltrace commit [1]: commit 1778c2a4134647150b199b2b57130817144446b0 Author: Philippe Proulx Date: Tue Apr 21 11:15:42 2020 -0400 lib: assign a unique ID to each pre/postcond. and report it on failure All assertion macros are moved to the new urcu/assert.h file. Link: https://github.com/efficios/babeltrace/commit/1778c2a4134647150b199b2b57130817144446b0 [1] Signed-off-by: Francis Deslauriers Signed-off-by: Mathieu Desnoyers Change-Id: If60ce2d3f45ea8f5ec1dbb92fb43f83fd9f8102b ---