[PATCH v4 09/21] tftp: add debug_assert() macro
Enrico Scholz
enrico.scholz at sigma-chemnitz.de
Tue Aug 30 00:38:04 PDT 2022
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 at sigma-chemnitz.de>
---
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
More information about the barebox
mailing list