gallium debug: Add gcc printf hint to debug_printf
authorNicolai Hähnle <nhaehnle@gmail.com>
Mon, 21 Sep 2009 15:28:37 +0000 (17:28 +0200)
committerNicolai Hähnle <nhaehnle@gmail.com>
Mon, 21 Sep 2009 15:41:54 +0000 (17:41 +0200)
This causes gcc to issue warnings when format parameters do not match up
with the format string in calls to debug_printf.

Signed-off-by: Nicolai Hähnle <nhaehnle@gmail.com>
src/gallium/auxiliary/util/u_debug.h

index 1380d98d7ee34f5c30b65eb7185bbd84d0881b32..b82e7cb4d40c0670d11c67f55e52807862c71524 100644 (file)
@@ -65,6 +65,11 @@ extern "C" {
 #define __FUNCTION__ "???"
 #endif
 
+#if defined(__GNUC__)
+#define _util_printf_format(fmt, list) __attribute__ ((format (printf, fmt, list)))
+#else
+#define _util_printf_format(fmt, list)
+#endif
 
 void _debug_vprintf(const char *format, va_list ap);
    
@@ -82,13 +87,16 @@ _debug_printf(const char *format, ...)
 /**
  * Print debug messages.
  *
- * The actual channel used to output debug message is platform specific. To 
- * avoid misformating or truncation, follow these rules of thumb:   
+ * The actual channel used to output debug message is platform specific. To
+ * avoid misformating or truncation, follow these rules of thumb:
  * - output whole lines
- * - avoid outputing large strings (512 bytes is the current maximum length 
+ * - avoid outputing large strings (512 bytes is the current maximum length
  * that is guaranteed to be printed in all platforms)
  */
 #if !defined(PIPE_OS_HAIKU)
+static INLINE void
+debug_printf(const char *format, ...) _util_printf_format(1,2);
+
 static INLINE void
 debug_printf(const char *format, ...)
 {