pgsql: Use standard C23 and C++ attributes if available

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Use standard C23 and C++ attributes if available
Date: 2026-04-01 06:24:45
Message-ID: E1w7p0O-002Pxi-10@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Use standard C23 and C++ attributes if available

Use the standard C23 and C++ attributes [[nodiscard]], [[noreturn]],
and [[maybe_unused]], if available.

This makes pg_nodiscard and pg_attribute_unused() available in
not-GCC-compatible compilers that support C23 as well as in C++.

For pg_noreturn, we can now drop the GCC-specific and MSVC-specific
fallbacks, because the C11 and the C++ implementation will now cover
all required cases.

Note, in a few places, we need to change the position of the attribute
because it's not valid in that place in C23.

Discussion: https://www.postgresql.org/message-id/flat/pxr5b3z7jmkpenssra5zroxi7qzzp6eswuggokw64axmdixpnk(at)zbwxuq7gbbcw

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/76f4b92bac87fa54bd6dd8bd53e59f93127ec2ef

Modified Files
--------------
src/backend/utils/mmgr/slab.c | 2 +-
src/include/c.h | 38 ++++++++++++++++++--------------
src/include/lib/radixtree.h | 2 +-
src/test/modules/worker_spi/worker_spi.c | 2 +-
4 files changed, 25 insertions(+), 19 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Fujii Masao 2026-04-01 06:44:04 pgsql: Reduce log level of some logical decoding messages from LOG to D
Previous Message Peter Eisentraut 2026-04-01 05:53:28 pgsql: Enable test_cplusplusext with MSVC