0004-Fix-additional-fallthrough-warnings-from-clang.patch
text/plain
Filename: 0004-Fix-additional-fallthrough-warnings-from-clang.patch
Type: text/plain
Part: 3
Message:
enable fallthrough warnings on clang
Patch
Format: format-patch
Series: patch 0004
Subject: Fix additional fallthrough warnings from clang
| File | + | − |
|---|---|---|
| contrib/isn/isn.c | 1 | 0 |
| contrib/pg_overexplain/pg_overexplain.c | 1 | 0 |
| src/backend/access/transam/xlogrecovery.c | 1 | 0 |
| src/backend/replication/logical/decode.c | 1 | 2 |
| src/backend/tcop/dest.c | 1 | 0 |
| src/backend/utils/mb/conversion_procs/euc_tw_and_big5/big5.c | 1 | 0 |
| src/pl/plpgsql/src/pl_comp.c | 1 | 0 |
| src/tools/pg_bsd_indent/indent.c | 1 | 0 |
From 9ab13453effe7747280ba650a61d97cefb1599e8 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
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