Swap order of extern/static and pg_nodiscard
authorPeter Eisentraut <peter@eisentraut.org>
Fri, 14 Mar 2025 06:18:07 +0000 (07:18 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Fri, 14 Mar 2025 06:18:07 +0000 (07:18 +0100)
commit05cbd6cb22d235d2e52ac309266a5fc50053dc16
treeb38252b6531fdbc0219443cdd92f40dea6ce10a8
parent01261fb07888642efa98ba8d4117654bfd2a413d
Swap order of extern/static and pg_nodiscard

When pg_nodiscard was first added, the C standard draft had it as a
function specifier, and so the code comment about placement was
written with that in mind.  The final C23 standard has it as an
attribute and the placement rules are a bit different for that.
Specifically, it needs to be before extern or static.  (Or at least
both current clang and gcc require that.)  So just swap these.  (To be
clear: The current implementation with gcc attributes doesn't care.
This change is just for maximum forward compatibility for non-gcc
compilers.)  This also keeps the order consistent with the previously
introduced pg_noreturn.  Also update the code comment to reflect the
mentioned developments since its introduction.

Reviewed-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://www.postgresql.org/message-id/flat/pxr5b3z7jmkpenssra5zroxi7qzzp6eswuggokw64axmdixpnk@zbwxuq7gbbcw
src/include/c.h
src/include/common/base64.h
src/include/nodes/pg_list.h
src/include/storage/buffile.h
src/include/utils/guc.h
src/include/utils/palloc.h