[lttng-dev] [PATCH] rculfhash: use do {} while (0) for dbg_printf()
Lai Jiangshan
laijs at cn.fujitsu.com
Mon May 7 05:53:37 EDT 2012
found by clang(make CC=clang).
avoid empty statement.
-------------------------
if (condition)
dbg_printf() /* forget ";", but compiler say nothing if dbg_printf() is empty */
statement;
-------------------------
also add printf format check.
(we can use gcc extention "__printf(1, 2)" to declare a dummy inline function
to do the check, but I use "printf()" directly here)
Signed-off-by: Lai Jiangshan <laijs at cn.fujitsu.com>
---
diff --git a/rculfhash-internal.h b/rculfhash-internal.h
index 284125a..d7cec95 100644
--- a/rculfhash-internal.h
+++ b/rculfhash-internal.h
@@ -25,11 +25,17 @@
*/
#include <urcu/rculfhash.h>
+#include <stdio.h>
#ifdef DEBUG
#define dbg_printf(fmt, args...) printf("[debug rculfhash] " fmt, ## args)
#else
-#define dbg_printf(fmt, args...)
+#define dbg_printf(fmt, args...) \
+do { \
+ /* do nothing but check printf format */ \
+ if (0) \
+ printf("[debug rculfhash] " fmt, ## args); \
+} while (0)
#endif
#if (CAA_BITS_PER_LONG == 32)
More information about the lttng-dev
mailing list