John Naylor <john(dot)naylor(at)2ndquadrant(dot)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.
regards, tom lane