Re: do {} while (0) nitpick - Mailing list pgsql-hackers

From Oleksandr Shulgin
Subject Re: do {} while (0) nitpick
Date
Msg-id CACACo5Q-cfkChVzRMjAi=uvoPe4MLM8V=SUpAkPbDr=n3iB01A@mail.gmail.com
Whole thread Raw
In response to Re: do {} while (0) nitpick  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
On Fri, May 1, 2020 at 3:52 AM Bruce Momjian <bruce@momjian.us> wrote:
>
> On Thu, Apr 30, 2020 at 09:51:10PM -0400, Tom Lane wrote:
> > John Naylor <john.naylor@2ndquadrant.com> writes:
> > > As I understand it, the point of having "do {} while (0)" in a
> > > multi-statement macro is to turn it into a simple statement.
> >
> > Right.
> >
> > > As such,
> > > ending with a semicolon in both the macro definition and the
> > > invocation will turn it back into multiple statements, creating
> > > confusion if someone were to invoke the macro in an "if" statement.
> >
> > Yeah.  I'd call these actual bugs, and perhaps even back-patch worthy.
>
> Agreed.  Those semicolons could easily create bugs.

It was a while ago that I last checked our Developer guide over at PostgreSQL wiki website, but I wonder if this is a sort of issue that modern linters would be able to recognize?

The only hit for "linting" search on the wiki is this page referring to the developer meeting in Ottawa about a year ago: https://wiki.postgresql.org/wiki/PgCon_2019_Developer_Meeting

> Other major projects include:
>   ...
>   Code linting

Anybody aware what's the current status of that effort?

Cheers,
--
Alex

pgsql-hackers by date:

Previous
From: Juan José Santamaría Flecha
Date:
Subject: Re: Postgres Windows build system doesn't work with python installedin Program Files
Next
From: Amit Kapila
Date:
Subject: Re: tablespace_map code cleanup