From: Tom Lane Date: Sat, 19 Mar 2016 14:59:20 +0000 (-0400) Subject: With ancient gcc, skip pg_attribute_printf() on function pointer. X-Git-Tag: REL9_6_BETA1~436 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b46d9beb658af7eb4e2a08dfa34206a117c9654f;p=thirdparty%2Fpostgresql.git With ancient gcc, skip pg_attribute_printf() on function pointer. Buildfarm results show that the ability to attach pg_attribute_printf decoration to a function pointer appeared somewhere between gcc 2.95.3 and gcc 4.0.1. Guess that it was there in 4.0. --- diff --git a/src/bin/psql/psqlscan.h b/src/bin/psql/psqlscan.h index d515ce34f23..4ff321866fc 100644 --- a/src/bin/psql/psqlscan.h +++ b/src/bin/psql/psqlscan.h @@ -32,7 +32,12 @@ typedef struct PsqlScanCallbacks /* This pointer can be NULL if no variable substitution is wanted */ char *(*get_variable) (const char *varname, bool escape, bool as_ident); /* Print an error message someplace appropriate */ + /* (very old gcc versions don't support attributes on function pointers) */ +#if defined(__GNUC__) && __GNUC__ < 4 + void (*write_error) (const char *fmt,...); +#else void (*write_error) (const char *fmt,...) pg_attribute_printf(1, 2); +#endif } PsqlScanCallbacks;