postgresql/src/include
Peter Eisentraut 8354b9d6b6 Use fallthrough attribute instead of comment
Instead of using comments to mark fallthrough switch cases, use the
fallthrough attribute.  This will (in the future, not here) allow
supporting other compilers besides gcc.  The commenting convention is
only supported by gcc, the attribute is supported by clang, and in the
fullness of time the C23 standard attribute would allow supporting
other compilers as well.

Right now, we package the attribute into a macro called
pg_fallthrough.  This commit defines that macro and replaces the
existing comments with that macro invocation.

We also raise the level of the gcc -Wimplicit-fallthrough= option from
3 to 5 to enforce the use of the attribute.

Reviewed-by: Jelte Fennema-Nio <postgres@jeltef.nl>
Discussion: https://www.postgresql.org/message-id/flat/76a8efcd-925a-4eaf-bdd1-d972cd1a32ff%40eisentraut.org
2026-02-19 08:51:12 +01:00
..
access Update obsolete comment 2026-02-18 18:09:54 +01:00
archive Update copyright for 2026 2026-01-01 13:24:10 -05:00
backup Update copyright for 2026 2026-01-01 13:24:10 -05:00
bootstrap Simplify creation of built-in functions with default arguments. 2026-02-18 14:14:44 -05:00
catalog Simplify creation of built-in functions with default arguments. 2026-02-18 14:14:44 -05:00
commands Harden _int_matchsel() against being attached to the wrong operator. 2026-02-09 10:14:22 -05:00
common Use fallthrough attribute instead of comment 2026-02-19 08:51:12 +01:00
datatype Update copyright for 2026 2026-01-01 13:24:10 -05:00
executor Use a bitmask for ExecInsertIndexTuples options 2026-02-17 17:59:45 +01:00
fe_utils Update copyright for 2026 2026-01-01 13:24:10 -05:00
foreign Update copyright for 2026 2026-01-01 13:24:10 -05:00
jit Fix typos and inconsistencies in code and comments 2026-01-05 09:19:15 +09:00
lib Future-proof sort template against undefined behavior 2026-02-07 17:02:35 +07:00
libpq Add password expiration warnings. 2026-02-11 10:36:15 -06:00
mb Replace pg_mblen() with bounds-checked versions. 2026-02-09 12:44:04 +13:00
nodes Add support for INSERT ... ON CONFLICT DO SELECT. 2026-02-12 09:57:04 +00:00
optimizer Store information about Append node consolidation in the final plan. 2026-02-10 17:55:59 -05:00
parser Remove p_is_insert from struct ParseState. 2026-02-12 09:01:42 +00:00
partitioning Update copyright for 2026 2026-01-01 13:24:10 -05:00
pch Update copyright for 2026 2026-01-01 13:24:10 -05:00
port Remove specialized word-length popcount implementations. 2026-02-12 11:32:49 -06:00
portability Remove PG_MMAP_FLAGS from mem.h 2026-01-26 10:52:02 +09:00
postmaster Cleanup for log_min_messages changes in 38e0190ced 2026-02-11 16:38:18 +01:00
regex Update copyright for 2026 2026-01-01 13:24:10 -05:00
replication Switch SysCacheIdentifier to a typedef enum 2026-02-18 09:58:38 +09:00
rewrite Update copyright for 2026 2026-01-01 13:24:10 -05:00
snowball Update to latest Snowball sources. 2026-01-05 15:22:37 -05:00
statistics Add support for "mcv" in pg_restore_extended_stats() 2026-01-29 12:14:08 +09:00
storage Move ProcStructLock to the ProcGlobal struct 2026-02-11 16:48:45 +02:00
tcop Separate RecoveryConflictReasons from procsignals 2026-02-10 16:23:08 +02:00
tsearch Replace pg_mblen() with bounds-checked versions. 2026-02-09 12:44:04 +13:00
utils Switch SysCacheIdentifier to a typedef enum 2026-02-18 09:58:38 +09:00
.gitignore Use <stdint.h> and <inttypes.h> for c.h integers. 2024-12-04 15:05:38 +13:00
c.h Use fallthrough attribute instead of comment 2026-02-19 08:51:12 +01:00
fmgr.h Improve type handling of varlena structures 2026-02-11 07:33:24 +09:00
funcapi.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
getopt_long.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
Makefile Fix build inconsistency due to the generation of wait-event code 2026-02-02 08:02:39 +09:00
meson.build Ensure that all three build methods install the same set of files. 2026-02-16 15:20:15 -05:00
miscadmin.h Add password expiration warnings. 2026-02-11 10:36:15 -06:00
pg_config.h.in Revert "Change copyObject() to use typeof_unqual" 2026-02-07 10:08:38 +01:00
pg_config_manual.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
pg_getopt.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
pg_trace.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
pgstat.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
pgtar.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
pgtime.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
port.h strnlen() is now required 2026-01-08 08:51:20 +01:00
postgres.h Rename AssertVariableIsOfType to StaticAssertVariableIsOfType 2026-02-03 08:45:24 +01:00
postgres_ext.h Move pg_int64 back to postgres_ext.h 2025-09-16 10:48:56 +02:00
postgres_fe.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
varatt.h Improve type handling of varlena structures 2026-02-11 07:33:24 +09:00
windowapi.h Update copyright for 2026 2026-01-01 13:24:10 -05:00