lua

A copy of the Lua development repository
Log | Files | Refs | README

commit d4247befa18a7911c56e7110154ad73574cd6648
parent ee6a4cd1eca4fa736d108e1e0ac3cb9858f7a5ef
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Fri, 15 Nov 2024 11:56:51 -0300

New macro 'assert_code'

It allows code that is only used by assertions but that are not
assertions (e.g., declaration of a variable used in a later assertion).

Diffstat:
Mllimits.h | 11++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/llimits.h b/llimits.h @@ -102,18 +102,19 @@ typedef LUAI_UACINT l_uacInt; #undef NDEBUG #include <assert.h> #define lua_assert(c) assert(c) +#define assert_code(c) c #endif #if defined(lua_assert) -#define check_exp(c,e) (lua_assert(c), (e)) -/* to avoid problems with conditions too long */ -#define lua_longassert(c) ((c) ? (void)0 : lua_assert(0)) #else #define lua_assert(c) ((void)0) -#define check_exp(c,e) (e) -#define lua_longassert(c) ((void)0) +#define assert_code(c) ((void)0) #endif +#define check_exp(c,e) (lua_assert(c), (e)) +/* to avoid problems with conditions too long */ +#define lua_longassert(c) assert_code((c) ? (void)0 : lua_assert(0)) + /* macro to avoid warnings about unused variables */ #if !defined(UNUSED)