From: Nick Mathewson Date: Tue, 17 Jun 2003 22:14:44 +0000 (+0000) Subject: Have GCC catch errors in format strings X-Git-Tag: tor-0.0.2pre8~136 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6965a4696cf3b00a1f385cf3f3a562897fefdb09;p=thirdparty%2Ftor.git Have GCC catch errors in format strings svn:r332 --- diff --git a/src/common/log.h b/src/common/log.h index 635b15dbd7..0cf7c0dd6d 100644 --- a/src/common/log.h +++ b/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