Re: Modernizing pg_bsd_indent's error/warning reporting code

Ayush Tiwari <ayushtiwari.slg01@gmail.com>

From: Ayush Tiwari <ayushtiwari.slg01@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2026-06-12T20:05:23Z
Lists: pgsql-hackers
Hi,

On Fri, 12 Jun 2026 at 22:29, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> Buildfarm member greenfly has recently started to warn about
> some very hoary code in pg_bsd_indent [1]:
>
> ../pgsql/src/tools/pg_bsd_indent/io.c:562:27: warning: diagnostic behavior
> may be improved by adding the 'format(printf, 2, 3)' attribute to the
> declaration of 'diag4' [-Wmissing-format-attribute]
>   562 |         fprintf(stdout, msg, a, b);
>       |                                  ^
> ../pgsql/src/tools/pg_bsd_indent/io.c:579:24: warning: diagnostic behavior
> may be improved by adding the 'format(printf, 2, 3)' attribute to the
> declaration of 'diag3' [-Wmissing-format-attribute]
>   579 |         fprintf(stdout, msg, a);
>       |                               ^
>
> This is not an unreasonable suggestion, and presumably more people
> will start seeing this as they adopt newer clang versions.  (I see
> the same on Fedora 44, for instance.)  So I think we ought to take
> the advice, and while we're at it let's convert this code to use
> varargs instead of several duplicative functions.  Patch attached.
>

Patch looks good to me,

Just a minor comment, while we are at it, should we change
the %zd to %zu for nitems since it looks like it uses size_t?

Regards,
Ayush

Commits

  1. Modernize pg_bsd_indent's error/warning reporting code.