[PATCH v3 16/18] tftp: add debug_assert() macro
Enrico Scholz
enrico.scholz at sigma-chemnitz.de
Mon Aug 15 01:42:20 PDT 2022
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 at sigma-chemnitz.de>
---
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
More information about the barebox
mailing list