Get rid of trailing semicolons in C macro definitions.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 1 May 2020 21:28:01 +0000 (17:28 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 1 May 2020 21:28:01 +0000 (17:28 -0400)
commita2098b60216c7a66054ee7b31e9f728bca43d004
treed32a5697d20b1b5df94529ca7676d896d8be66d4
parent573478564705a801f7313bb793f05932cb875528
Get rid of trailing semicolons in C macro definitions.

Writing a trailing semicolon in a macro is almost never the right thing,
because you almost always want to write a semicolon after each macro
call instead.  (Even if there was some reason to prefer not to, pgindent
would probably make a hash of code formatted that way; so within PG the
rule should basically be "don't do it".)  Thus, if we have a semi inside
the macro, the compiler sees "something;;".  Much of the time the extra
empty statement is harmless, but it could lead to mysterious syntax
errors at call sites.  In perhaps an overabundance of neatnik-ism, let's
run around and get rid of the excess semicolons whereever possible.

The only thing worse than a mysterious syntax error is a mysterious
syntax error that only happens in the back branches; therefore,
backpatch these changes where relevant, which is most of them because
most of these mistakes are old.  (The lack of reported problems shows
that this is largely a hypothetical issue, but still, it could bite
us in some future patch.)

John Naylor and Tom Lane

Discussion: https://postgr.es/m/CACPNZCs0qWTqJ2QUSGJ07B7uvAvzMb-KbG2q+oo+J3tsWN5cqw@mail.gmail.com
13 files changed:
contrib/btree_gist/btree_ts.c
contrib/btree_gist/btree_utils_num.h
contrib/pg_trgm/trgm.h
contrib/pgcrypto/crypt-blowfish.c
src/backend/nodes/readfuncs.c
src/backend/optimizer/util/pathnode.c
src/backend/utils/adt/formatting.c
src/backend/utils/sort/gen_qsort_tuple.pl
src/bin/pg_dump/pg_backup_archiver.h
src/include/access/hash.h
src/include/access/nbtree.h
src/port/qsort.c
src/port/qsort_arg.c