Is a noop in normal cases (when compiler sees that condition can be evaluated without sideeffects) but allows optimizations based on the condition. E.g. in | void foo(int a) | { | debug_assert(a == 23); | | if (a == 23) | return; | | bar(); | } the call to 'bar()' will be optimized away. Signed-off-by: Enrico Scholz <enrico.scholz@xxxxxxxxxxxxxxxxx> --- fs/tftp.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fs/tftp.c b/fs/tftp.c index c96c8917633a..d02ca750cd6d 100644 --- a/fs/tftp.c +++ b/fs/tftp.c @@ -75,6 +75,15 @@ #define TFTP_ERR_RESEND 1 +#ifdef DEBUG +# define debug_assert(_cond) BUG_ON(!(_cond)) +#else +# define debug_assert(_cond) do { \ + if (!(_cond)) \ + __builtin_unreachable(); \ + } while (0) +#endif + static int g_tftp_window_size = DIV_ROUND_UP(TFTP_MAX_WINDOW_SIZE, 2); struct file_priv { -- 2.37.1