diff options
author | Nick Mathewson <nickm@torproject.org> | 2003-06-17 22:14:44 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2003-06-17 22:14:44 +0000 |
commit | 6965a4696cf3b00a1f385cf3f3a562897fefdb09 (patch) | |
tree | a5139eec24210d6dd2d1ec8f0a0c448f15750260 /src/common | |
parent | 5fd033a8e8d98161888964e53b58e31d226df3f3 (diff) | |
download | tor-6965a4696cf3b00a1f385cf3f3a562897fefdb09.tar tor-6965a4696cf3b00a1f385cf3f3a562897fefdb09.tar.gz |
Have GCC catch errors in format strings
svn:r332
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/log.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/common/log.h b/src/common/log.h index 635b15dbd..0cf7c0dd6 100644 --- a/src/common/log.h +++ b/src/common/log.h @@ -9,11 +9,20 @@ #include <syslog.h> +/* 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 |