Re: pg_upgrade's exec_prog() coding improvement

Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>

From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2012-08-24T06:33:51Z
Lists: pgsql-hackers
On 23.08.2012 23:07, Alvaro Herrera wrote:
> One problem with this is that I get this warning:
>
> /pgsql/source/HEAD/contrib/pg_upgrade/exec.c: In function ‘s_exec_prog’:
> /pgsql/source/HEAD/contrib/pg_upgrade/exec.c:96:2: warning: function might be possible candidate for ‘gnu_printf’ format attribute [-Wmissing-format-attribute]
> /pgsql/source/HEAD/contrib/pg_upgrade/exec.c:96:2: warning: function might be possible candidate for ‘gnu_printf’ format attribute [-Wmissing-format-attribute]
>
> I have no idea how to silence that.  Ideas?

You can do what the warning suggests, and tell the compiler that 
exec_prog takes printf-like arguments. See elog.h for an example of that:

extern int
errmsg(const char *fmt,...)
/* This extension allows gcc to check the format string for consistency with
    the supplied arguments. */
__attribute__((format(PG_PRINTF_ATTRIBUTE, 1, 2)));

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com