diff options
author | Nicolai Hähnle <[email protected]> | 2009-09-21 17:28:37 +0200 |
---|---|---|
committer | Nicolai Hähnle <[email protected]> | 2009-09-21 17:41:54 +0200 |
commit | 496137d8eb85e78fab748f184b392f99b17059ea (patch) | |
tree | 592d63354b653af156583d8adf81927e3113ff8b /src | |
parent | 7ce0421fb712fd4e595f6c2ecede91c16fb3e133 (diff) |
gallium debug: Add gcc printf hint to debug_printf
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 <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/auxiliary/util/u_debug.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/util/u_debug.h b/src/gallium/auxiliary/util/u_debug.h index 1380d98d7ee..b82e7cb4d40 100644 --- a/src/gallium/auxiliary/util/u_debug.h +++ b/src/gallium/auxiliary/util/u_debug.h @@ -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,14 +87,17 @@ _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, ...) { #ifdef DEBUG |