Re: do {} while (0) nitpick

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: do {} while (0) nitpick
Дата
Msg-id 20200501015236.GB31271@momjian.us
обсуждение исходный текст
Ответ на Re: do {} while (0) nitpick  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: do {} while (0) nitpick  (David Steele <david@pgmasters.net>)
Re: do {} while (0) nitpick  (Oleksandr Shulgin <oleksandr.shulgin@zalando.de>)
Список pgsql-hackers
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.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EnterpriseDB                             https://enterprisedb.com

+ As you are, so once was I.  As I am, so you will be. +
+                      Ancient Roman grave inscription +



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: do {} while (0) nitpick
Следующее
От: James Coleman
Дата:
Сообщение: Comment simplehash/dynahash trade-offs