Is a noop in normal cases (when compiler sees that the 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 51cb1109d2ff..07de8334f202 100644 --- a/fs/tftp.c +++ b/fs/tftp.c @@ -70,6 +70,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 + struct file_priv { struct net_connection *tftp_con; int push; -- 2.37.2