Re: do {} while (0) nitpick

Поиск
Список
Период
Сортировка
От Oleksandr Shulgin
Тема Re: do {} while (0) nitpick
Дата
Msg-id CACACo5Q-cfkChVzRMjAi=uvoPe4MLM8V=SUpAkPbDr=n3iB01A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: do {} while (0) nitpick  (Bruce Momjian <bruce@momjian.us>)
Список 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 по дате отправления:

Предыдущее
От: Juan José Santamaría Flecha
Дата:
Сообщение: Re: Postgres Windows build system doesn't work with python installedin Program Files
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: tablespace_map code cleanup