pgsql: Clean up warnings from -Wimplicit-fallthrough.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Clean up warnings from -Wimplicit-fallthrough.
Date: 2018-05-01 23:35:18
Message-ID: E1fDenm-0000C8-IJ@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Clean up warnings from -Wimplicit-fallthrough.

Recent gcc can warn about switch-case fall throughs that are not
explicitly labeled as intentional. This seems like a good thing,
so clean up the warnings exposed thereby by labeling all such
cases with comments that gcc will recognize.

In files that already had one or more suitable comments, I generally
matched the existing style of those. Otherwise I went with
/* FALLTHROUGH */, which is one of the spellings approved at the
more-restrictive-than-default level -Wimplicit-fallthrough=4.
(At the default level you can also spell it /* FALL ?THRU */,
and it's not picky about case. What you can't do is include
additional text in the same comment, so some existing comments
containing versions of this aren't good enough.)

Testing with gcc 8.0.1 (Fedora 28's current version), I found that
I also had to put explicit "break"s after elog(ERROR) or ereport(ERROR);
apparently, for this purpose gcc doesn't recognize that those don't
return. That seems like possibly a gcc bug, but it's fine because
in most places we did that anyway; so this amounts to a visit from the
style police.

Discussion: https://postgr.es/m/15083.1525207729@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/41c912cad15955b5f9270ef3688a44e91d410d3d

Modified Files
--------------
contrib/btree_gin/btree_gin.c | 1 +
contrib/pageinspect/hashfuncs.c | 4 ++
src/backend/access/hash/hashfunc.c | 64 +++++++++++++++++++++++++------
src/backend/catalog/objectaddress.c | 1 +
src/backend/commands/explain.c | 3 +-
src/backend/commands/indexcmds.c | 1 +
src/backend/commands/trigger.c | 1 +
src/backend/executor/execMain.c | 1 +
src/backend/executor/execReplication.c | 2 +
src/backend/executor/nodeLockRows.c | 1 +
src/backend/executor/nodeModifyTable.c | 2 +
src/backend/parser/gram.y | 3 ++
src/backend/parser/parse_utilcmd.c | 2 +
src/backend/regex/regc_lex.c | 1 +
src/backend/regex/regcomp.c | 3 +-
src/backend/tcop/postgres.c | 9 +++--
src/backend/utils/adt/acl.c | 1 +
src/backend/utils/adt/datetime.c | 4 +-
src/backend/utils/adt/numeric.c | 1 +
src/backend/utils/adt/ruleutils.c | 2 +-
src/backend/utils/adt/timestamp.c | 19 ++++++++-
src/backend/utils/misc/guc.c | 4 +-
src/backend/utils/sort/tuplestore.c | 2 +-
src/bin/pgbench/pgbench.c | 2 +
src/interfaces/ecpg/pgtypeslib/interval.c | 2 +
src/interfaces/ecpg/preproc/ecpg.c | 4 +-
src/pl/plpgsql/src/pl_exec.c | 10 +++++
src/pl/tcl/pltcl.c | 3 +-
28 files changed, 128 insertions(+), 25 deletions(-)

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2018-05-01 23:38:35 pgsql: Fix some assorted compiler warnings on Windows.
Previous Message Andres Freund 2018-05-01 20:33:07 pgsql: Improve representation of 'moved partitions' indicator on delete

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2018-05-01 23:39:13 Re: A few warnings on Windows
Previous Message David Rowley 2018-05-01 23:18:11 Re: Should we add GUCs to allow partition pruning to be disabled?