From: borutr Date: Wed, 31 Jan 2007 21:13:26 +0000 (+0000) Subject: * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf() X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=fb41f4233c91f98b7805e5e5f8941322ed7cc848;p=fw%2Fsdcc * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf() if compiled with GCC. Thanks to Raphael Neider git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4610 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/ChangeLog b/ChangeLog index a9303c65..eaee037a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-01-31 Borut Razem + + * support/Util/dbuf_string.h: added ATTRIBUTE_PRINTF to dbuf_printf() + if compiled with GCC. Thanks to Raphael Neider + 2007-01-31 Raphael Neider * src/pic/pcode.c (isValidIdChar,bankCompare): fuzzy matching of diff --git a/support/Util/dbuf_string.h b/support/Util/dbuf_string.h index 8c4d78bb..2c45181e 100644 --- a/support/Util/dbuf_string.h +++ b/support/Util/dbuf_string.h @@ -27,6 +27,25 @@ #include #include "dbuf.h" +/* Attribute `nonnull' was valid as of gcc 3.3. */ +#ifndef ATTRIBUTE_NONNULL +# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) +# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m))) +# else +# define ATTRIBUTE_NONNULL(m) +# endif /* GNUC >= 3.3 */ +#endif /* ATTRIBUTE_NONNULL */ + +/* The __-protected variants of `format' and `printf' attributes + are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ +#ifndef ATTRIBUTE_PRINTF +# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +# define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m) +#else +# define ATTRIBUTE_PRINTF(m, n) +# endif /* GNUC >= 2.7 */ +#endif /* ATTRIBUTE_PRINTF */ + #ifdef __cplusplus extern "C" { #endif @@ -34,7 +53,7 @@ extern "C" { int dbuf_append_str(struct dbuf_s *dbuf, const char *str); int dbuf_append_char(struct dbuf_s *dbuf, char chr); int dbuf_vprintf(struct dbuf_s *dbuf, const char *format, va_list args); -int dbuf_printf (struct dbuf_s *dbuf, const char *format, ...); +int dbuf_printf (struct dbuf_s *dbuf, const char *format, ...) ATTRIBUTE_PRINTF(2, 3); void dbuf_write (struct dbuf_s *dbuf, FILE *dest); void dbuf_write_and_destroy (struct dbuf_s *dbuf, FILE *dest);