mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 23:27:04 +02:00
MINOR: debug: make BUG_ON() catch build errors even without DEBUG_STRICT
As seen in previous commit 59acb27001
("BUILD: quic: Variable name typo
inside a BUG_ON()."), it can sometimes happen that with DEBUG forced
without DEBUG_STRICT, BUG_ON() statements are ignored. Sadly, it means
that typos there are not even build-tested.
This patch makes these statements reference sizeof(cond) to make sure
the condition is parsed. This doesn't result in any code being emitted,
but makes sure the expression is correct so that an issue such as the one
above will fail to build (which was verified).
This may be backported as it can help spot failed backports as well.
This commit is contained in:
parent
be0165b249
commit
bc70b385fd
@ -186,9 +186,9 @@ static __attribute__((noinline,noreturn,unused)) void abort_with_line(uint line)
|
||||
# define CHECK_IF(cond) _BUG_ON_ONCE(cond, __FILE__, __LINE__, 1, "FATAL: check ", "")
|
||||
# endif
|
||||
#else
|
||||
# define BUG_ON(cond) do { } while (0)
|
||||
# define WARN_ON(cond) do { } while (0)
|
||||
# define CHECK_IF(cond) do { } while (0)
|
||||
# define BUG_ON(cond) do { (void)sizeof(cond); } while (0)
|
||||
# define WARN_ON(cond) do { (void)sizeof(cond); } while (0)
|
||||
# define CHECK_IF(cond) do { (void)sizeof(cond); } while (0)
|
||||
#endif
|
||||
|
||||
/* These macros are only for hot paths and remain disabled unless DEBUG_STRICT is 2 or above.
|
||||
@ -210,8 +210,8 @@ static __attribute__((noinline,noreturn,unused)) void abort_with_line(uint line)
|
||||
# define CHECK_IF_HOT(cond) _BUG_ON_ONCE(cond, __FILE__, __LINE__, 1, "FATAL: check ", "")
|
||||
# endif
|
||||
#else
|
||||
# define BUG_ON_HOT(cond) do { } while (0)
|
||||
# define CHECK_IF_HOT(cond) do { } while (0)
|
||||
# define BUG_ON_HOT(cond) do { (void)sizeof(cond); } while (0)
|
||||
# define CHECK_IF_HOT(cond) do { (void)sizeof(cond); } while (0)
|
||||
#endif
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user