Use attribute __gnu_printf__ with our estream-printf functions.
authorWerner Koch <wk@gnupg.org>
Fri, 7 Mar 2014 08:46:44 +0000 (09:46 +0100)
committerWerner Koch <wk@gnupg.org>
Fri, 7 Mar 2014 15:40:10 +0000 (16:40 +0100)
* common/mischelp.h (JNLIB_GCC_A_PRINTF): Use __gnu_printf__
(JNLIB_GCC_A_NR_PRINTF): Ditto.
--

Our printf supports most of the GNU features and thus we can silence
the warnings from mingw.

common/mischelp.h

index dd1f3a6..e3c4fd1 100644 (file)
@@ -55,9 +55,16 @@ time_t timegm (struct tm *tm);
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5 )
 # define JNLIB_GCC_M_FUNCTION 1
 # define JNLIB_GCC_A_NR             __attribute__ ((noreturn))
-# define JNLIB_GCC_A_PRINTF( f, a )  __attribute__ ((format (printf,f,a)))
-# define JNLIB_GCC_A_NR_PRINTF( f, a ) \
+# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4 )
+#   define JNLIB_GCC_A_PRINTF( f, a ) \
+                    __attribute__ ((format (__gnu_printf__,f,a)))
+#   define JNLIB_GCC_A_NR_PRINTF( f, a ) \
+                   __attribute__ ((noreturn, format (__gnu_printf__,f,a)))
+# else
+#   define JNLIB_GCC_A_PRINTF( f, a )  __attribute__ ((format (printf,f,a)))
+#   define JNLIB_GCC_A_NR_PRINTF( f, a ) \
                            __attribute__ ((noreturn, format (printf,f,a)))
+# endif
 #else
 # define JNLIB_GCC_A_NR
 # define JNLIB_GCC_A_PRINTF( f, a )