From 9ab13453effe7747280ba650a61d97cefb1599e8 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 20 Jan 2026 11:35:16 +0100 Subject: [PATCH 4/5] Fix additional fallthrough warnings from clang Clang warns if falling through to a case or default label that is immediately followed by break, but GCC does not (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91432). (MSVC also warns about the equivalent code in C++.) --- contrib/isn/isn.c | 1 + contrib/pg_overexplain/pg_overexplain.c | 1 + src/backend/access/transam/xlogrecovery.c | 1 + src/backend/replication/logical/decode.c | 3 +-- src/backend/tcop/dest.c | 1 + src/backend/utils/mb/conversion_procs/euc_tw_and_big5/big5.c | 1 + src/pl/plpgsql/src/pl_comp.c | 1 + src/tools/pg_bsd_indent/indent.c | 1 + 8 files changed, 8 insertions(+), 2 deletions(-) diff --git a/contrib/isn/isn.c b/contrib/isn/isn.c index 00bb814c526..bbe4344e6ad 100644 --- a/contrib/isn/isn.c +++ b/contrib/isn/isn.c @@ -837,6 +837,7 @@ string2ean(const char *str, struct Node *escontext, ean13 *result, case UPC: buf[2] = '0'; valid = (valid && ((rcheck = checkdig(buf + 2, 13)) == check || magic)); + break; default: break; } diff --git a/contrib/pg_overexplain/pg_overexplain.c b/contrib/pg_overexplain/pg_overexplain.c index 316ffd1c87f..0bb38982ced 100644 --- a/contrib/pg_overexplain/pg_overexplain.c +++ b/contrib/pg_overexplain/pg_overexplain.c @@ -248,6 +248,7 @@ overexplain_per_node_hook(PlanState *planstate, List *ancestors, overexplain_bitmapset("RTIs", ((Result *) plan)->relids, es); + break; default: break; } diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c index 117d8d8bb6b..41c55aef576 100644 --- a/src/backend/access/transam/xlogrecovery.c +++ b/src/backend/access/transam/xlogrecovery.c @@ -1893,6 +1893,7 @@ PerformWalRecovery(void) recoveryPausesHere(true); /* drop into promote */ + pg_fallthrough; case RECOVERY_TARGET_ACTION_PROMOTE: break; diff --git a/src/backend/replication/logical/decode.c b/src/backend/replication/logical/decode.c index e25dd6bc366..32fb52269c5 100644 --- a/src/backend/replication/logical/decode.c +++ b/src/backend/replication/logical/decode.c @@ -430,9 +430,8 @@ heap2_decode(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) xlrec = (xl_heap_new_cid *) XLogRecGetData(buf->record); SnapBuildProcessNewCid(builder, xid, buf->origptr, xlrec); - - break; } + break; case XLOG_HEAP2_REWRITE: /* diff --git a/src/backend/tcop/dest.c b/src/backend/tcop/dest.c index 931cc563ba6..fb163930c89 100644 --- a/src/backend/tcop/dest.c +++ b/src/backend/tcop/dest.c @@ -180,6 +180,7 @@ EndCommand(const QueryCompletion *qc, CommandDest dest, bool force_undecorated_o len = BuildQueryCompletionString(completionTag, qc, force_undecorated_output); pq_putmessage(PqMsg_CommandComplete, completionTag, len + 1); + break; case DestNone: case DestDebug: diff --git a/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/big5.c b/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/big5.c index 68f76aa8cb8..21d55523ace 100644 --- a/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/big5.c +++ b/src/backend/utils/mb/conversion_procs/euc_tw_and_big5/big5.c @@ -370,6 +370,7 @@ CNStoBIG5(unsigned short cns, unsigned char lc) if (b1c4[i][1] == cns) return b1c4[i][0]; } + break; default: break; } diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c index 7d648c941c0..5ecc7766757 100644 --- a/src/pl/plpgsql/src/pl_comp.c +++ b/src/pl/plpgsql/src/pl_comp.c @@ -2333,6 +2333,7 @@ plpgsql_add_initdatums(int **varnos) case PLPGSQL_DTYPE_VAR: case PLPGSQL_DTYPE_REC: (*varnos)[n++] = plpgsql_Datums[i]->dno; + break; default: break; diff --git a/src/tools/pg_bsd_indent/indent.c b/src/tools/pg_bsd_indent/indent.c index 6e550ff310f..421592db928 100644 --- a/src/tools/pg_bsd_indent/indent.c +++ b/src/tools/pg_bsd_indent/indent.c @@ -296,6 +296,7 @@ main(int argc, char **argv) * done earlier. */ force_nl = false; + break; case form_feed: break; case comment: -- 2.52.0