mirror of
https://github.com/qemu/qemu.git
synced 2024-11-24 19:33:39 +08:00
tcg: Add tcg_debug_assert
Like the C assert macro, except only enabled for CONFIG_DEBUG_TCG, and without having to set _NDEBUG and disable all other asserts at the same time. The use of __builtin_unreachable (when available) gives the compiler the same information, which may (or may not) help it optimize better. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
77276f6581
commit
c552d6c038
@ -530,6 +530,15 @@ do {\
|
||||
abort();\
|
||||
} while (0)
|
||||
|
||||
#ifdef CONFIG_DEBUG_TCG
|
||||
# define tcg_debug_assert(X) do { assert(X); } while (0)
|
||||
#elif QEMU_GNUC_PREREQ(4, 5)
|
||||
# define tcg_debug_assert(X) \
|
||||
do { if (!(X)) { __builtin_unreachable(); } } while (0)
|
||||
#else
|
||||
# define tcg_debug_assert(X) do { (void)(X); } while (0)
|
||||
#endif
|
||||
|
||||
void tcg_add_target_add_op_defs(const TCGTargetOpDef *tdefs);
|
||||
|
||||
#if TCG_TARGET_REG_BITS == 32
|
||||
|
Loading…
Reference in New Issue
Block a user