From: Friedrich Beckmann Date: Sun, 15 Nov 2020 08:15:13 +0000 (+0100) Subject: check gcc version before using gnu_printf attribute X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b9bfe9d73a06218343f4c08aa7e9dd65d5a7da3;p=pspp check gcc version before using gnu_printf attribute The MacOS clang compiler does not know the gnu_printf attribute. gnu_printf was introduced with gcc version 4.4 so I check the gcc version before using gnu_printf. Otherwise I fallback to the previous __printf__ attribute. --- diff --git a/src/libpspp/compiler.h b/src/libpspp/compiler.h index fb85a553e7..6ce8f1aecb 100644 --- a/src/libpspp/compiler.h +++ b/src/libpspp/compiler.h @@ -38,7 +38,11 @@ /* 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. */ +#if defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__>= 4) || __GNUC__ > 4) #define PRINTF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (gnu_printf, FMT, FIRST))) +#else +#define PRINTF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (__printf__, FMT, FIRST))) +#endif #define SCANF_FORMAT(FMT, FIRST) ATTRIBUTE ((format (__scanf__, FMT, FIRST))) /* Tells the compiler that a function may be treated as if any diff --git a/src/output/pivot-table.h b/src/output/pivot-table.h index cc61377fc2..99fbdb295d 100644 --- a/src/output/pivot-table.h +++ b/src/output/pivot-table.h @@ -706,7 +706,11 @@ 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 *, ...) +#if defined(__GNUC__) && ((__GNUC__ == 4 && __GNUC_MINOR__>= 4) || __GNUC__ > 4) __attribute__((format(gnu_printf, 1, 2))); +#else + __attribute__((format(__printf__, 1, 2))); +#endif struct pivot_value *pivot_value_new_user_text (const char *, size_t length); struct pivot_value *pivot_value_new_user_text_nocopy (char *);