[ovs-dev] [PATCHv2] lib/util.h: Disable ovs_assert when build with NDEBUG
Helmut Schaa
helmut.schaa at googlemail.com
Fri Dec 13 17:54:27 UTC 2013
Reduces binary size. Use a static inline function instead of
a macro to not get "unused variable" warnings everywhere.
Making ovs_assert an empty inline in the header file effectively
optimizes out all calls to ovs_assert.
Signed-off-by: Helmut Schaa <helmut.schaa at googlemail.com>
---
lib/util.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/lib/util.h b/lib/util.h
index 975d1a9..cc70f0e 100644
--- a/lib/util.h
+++ b/lib/util.h
@@ -68,11 +68,16 @@
*
* - Writes the failure message to the log.
*
- * - Not affected by NDEBUG. */
+ * - Gets optimized out by NDEBUG. */
+#ifndef NDEBUG
#define ovs_assert(CONDITION) \
if (!OVS_LIKELY(CONDITION)) { \
ovs_assert_failure(SOURCE_LOCATOR, __func__, #CONDITION); \
}
+#else
+static inline void ovs_assert(bool cond OVS_UNUSED) {}
+#endif
+
void ovs_assert_failure(const char *, const char *, const char *) NO_RETURN;
/* Casts 'pointer' to 'type' and issues a compiler warning if the cast changes
--
1.8.1.4
More information about the dev
mailing list