Use gnu_printf in attribute(()) to indicate GNU printf extension support.
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 27 Oct 2020 02:35:09 +0000 (19:35 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 27 Oct 2020 02:35:09 +0000 (19:35 -0700)
By writing ordinary printf (or __printf__) inside __attribute__((format)),
one indicates that the system's typical format specifiers are supported.
This is OK for building for glibc, but it falls down for building for
mingw, since PSPP actually supports GNU format specifiers there via gnulib.
By writing gnu_printf instead, we avoid some incorrect warnings on mingw.

src/libpspp/compiler.h
src/output/pivot-table.h

index b5d02466dcb7c1ddf602e3fe927303e86251399b..fb85a553e7f6930fcc56a66859869858aa9f03fd 100644 (file)
@@ -38,7 +38,7 @@
 /* Mark a function as taking a printf- or scanf-like format
    string as its FMT'th argument and that the FIRST'th argument
    is the first one to be checked against the format string. */
-#define PRINTF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (__printf__, FMT, FIRST)))
+#define PRINTF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (gnu_printf, FMT, FIRST)))
 #define SCANF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (__scanf__, FMT, FIRST)))
 
 /* Tells the compiler that a function may be treated as if any
index 377579a013d356b3f5feb4cea5959381be201ae8..c4c9bb778f70626c37b1c03a7ed7db1fa474f346 100644 (file)
@@ -683,7 +683,7 @@ struct pivot_value *pivot_value_new_variable (const struct variable *);
 /* Values from text strings. */
 struct pivot_value *pivot_value_new_text (const char *);
 struct pivot_value *pivot_value_new_text_format (const char *, ...)
-  PRINTF_FORMAT (1, 2);
+  __attribute__((format(gnu_printf, 1, 2)));
 
 struct pivot_value *pivot_value_new_user_text (const char *, size_t length);
 struct pivot_value *pivot_value_new_user_text_nocopy (char *);