From 41c912cad15955b5f9270ef3688a44e91d410d3d Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 1 May 2018 19:35:08 -0400 Subject: 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 --- src/backend/tcop/postgres.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/backend/tcop/postgres.c') diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 5095a4f6867..3828cae921d 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -2762,7 +2762,8 @@ RecoveryConflictInterrupt(ProcSignalReason reason) if (!IsWaitingForLock()) return; - /* Intentional drop through to check wait for pin */ + /* Intentional fall through to check wait for pin */ + /* FALLTHROUGH */ case PROCSIG_RECOVERY_CONFLICT_BUFFERPIN: @@ -2775,7 +2776,8 @@ RecoveryConflictInterrupt(ProcSignalReason reason) MyProc->recoveryConflictPending = true; - /* Intentional drop through to error handling */ + /* Intentional fall through to error handling */ + /* FALLTHROUGH */ case PROCSIG_RECOVERY_CONFLICT_LOCK: case PROCSIG_RECOVERY_CONFLICT_TABLESPACE: @@ -2819,7 +2821,8 @@ RecoveryConflictInterrupt(ProcSignalReason reason) break; } - /* Intentional drop through to session cancel */ + /* Intentional fall through to session cancel */ + /* FALLTHROUGH */ case PROCSIG_RECOVERY_CONFLICT_DATABASE: RecoveryConflictPending = true; -- cgit v1.2.3