This enables strict format/args checking for printf() style functions.

Signed-off-by: Sasha Khapyorsky <[EMAIL PROTECTED]>
---
 libibcommon/include/infiniband/common.h |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/libibcommon/include/infiniband/common.h 
b/libibcommon/include/infiniband/common.h
index 83c0679..c41217d 100644
--- a/libibcommon/include/infiniband/common.h
+++ b/libibcommon/include/infiniband/common.h
@@ -114,11 +114,16 @@ static inline uint64_t htonll(uint64_t x
 #define ENUM_STR_DEF(enumname, last, val)      (((unsigned)(val) < last) ? 
enumname ## _str[val] : "???")
 #define ENUM_STR_ARRAY(name)           char * name ## _str[]
 
+#ifdef __GNUC__
+#define IBCOMMON_STRICT_FORMAT __attribute__((format(printf, 2, 3)))
+#else
+#define IBCOMMON_STRICT_FORMAT
+#endif
 
 /* util.c: debugging and tracing */
-void   ibwarn(const char * const fn, char *msg, ...);
-void   ibpanic(const char * const fn, char *msg, ...);
-void   logmsg(const char *const fn, char *msg, ...);
+void   ibwarn(const char * const fn, char *msg, ...) IBCOMMON_STRICT_FORMAT;
+void   ibpanic(const char * const fn, char *msg, ...) IBCOMMON_STRICT_FORMAT;
+void   logmsg(const char *const fn, char *msg, ...) IBCOMMON_STRICT_FORMAT;
 
 void   xdump(FILE *file, char *msg, void *p, int size);
 
-- 
1.4.4.g031c-dirty


_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to