Explorar el Código

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).
Roberto Ierusalimschy hace 8 meses
padre
commit
d4247befa1
Se han modificado 1 ficheros con 6 adiciones y 5 borrados
  1. 6 5
      llimits.h

+ 6 - 5
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)