From 1c7d1c75e23e9619448efda5e8af7fefec832309 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 17 Jun 2003 22:14:44 +0000 Subject: [PATCH] Have GCC catch errors in format strings svn:r332 --- trunk/src/common/log.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/trunk/src/common/log.h b/trunk/src/common/log.h index 635b15dbd7..0cf7c0dd6d 100644 --- a/trunk/src/common/log.h +++ b/trunk/src/common/log.h @@ -9,11 +9,20 @@ #include +/* magic to make GCC check for proper format strings. */ +#ifdef __GNUC__ +#define CHECK_PRINTF(formatIdx, firstArg) \ + __attribute__ ((format (printf, formatIdx, firstArg))) +#else +#define CHECK_PRINTF(formatIdx, firstArg) +#endif + /* Outputs a message to stdout and also logs the same message using syslog. */ -void log(int severity, const char *format, ...); +void log(int severity, const char *format, ...) CHECK_PRINTF(2,3); #ifdef __GNUC__ -void _log_fn(int severity, const char *funcname, const char *format, ...); +void _log_fn(int severity, const char *funcname, const char *format, ...) + CHECK_PRINTF(3,4); #define log_fn(severity, args...) \ _log_fn(severity, __PRETTY_FUNCTION__, args) #else