From b46d9beb658af7eb4e2a08dfa34206a117c9654f Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 19 Mar 2016 10:59:20 -0400 Subject: [PATCH] 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. --- src/bin/psql/psqlscan.h | 5 +++++ 1 file changed, 5 insertions(+) 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;