Use standard C23 and C++ attributes if available

Started by Peter Eisentraut19 days ago1 messages
Jump to latest
#1Peter Eisentraut
peter_e@gmx.net

This is related to the C++ compatibility work in [0]/messages/by-id/df78eaac-c2eb-4344-852e-0965c75c5ad6@eisentraut.org.

This patch proposes to use the standard C23 and C++ attributes
[[nodiscard]], [[noreturn]], and [[maybe_unused]], if available.

The immediate practical impact is that for pg_noreturn, we can drop the
GCC-specific and MSVC-specific fallbacks, because the C11 and the C++
implementation will now cover all required cases.

For the other two attributes, this makes them available in
not-GCC-compatible compilers that support C23 as well as in C++. This
set is theoretical at the moment, but it might become more practical if
either MSVC gets some C23 support or we improve the support for C++
extensions with MSVC (see also [0]/messages/by-id/df78eaac-c2eb-4344-852e-0965c75c5ad6@eisentraut.org).

[0]: /messages/by-id/df78eaac-c2eb-4344-852e-0965c75c5ad6@eisentraut.org
/messages/by-id/df78eaac-c2eb-4344-852e-0965c75c5ad6@eisentraut.org

Attachments:

0001-Use-standard-C23-and-C-attributes-if-available.patchtext/plain; charset=UTF-8; name=0001-Use-standard-C23-and-C-attributes-if-available.patchDownload+25-20