postgres/contrib/pgcrypto
Peter Eisentraut 3691edfab9 pg_noreturn to replace pg_attribute_noreturn()
We want to support a "noreturn" decoration on more compilers besides
just GCC-compatible ones, but for that we need to move the decoration
in front of the function declaration instead of either behind it or
wherever, which is the current style afforded by GCC-style attributes.
Also rename the macro to "pg_noreturn" to be similar to the C11
standard "noreturn".

pg_noreturn is now supported on all compilers that support C11 (using
_Noreturn), as well as GCC-compatible ones (using __attribute__, as
before), as well as MSVC (using __declspec).  (When PostgreSQL
requires C11, the latter two variants can be dropped.)

Now, all supported compilers effectively support pg_noreturn, so the
extra code for !HAVE_PG_ATTRIBUTE_NORETURN can be dropped.

This also fixes a possible problem if third-party code includes
stdnoreturn.h, because then the current definition of

    #define pg_attribute_noreturn() __attribute__((noreturn))

would cause an error.

Note that the C standard does not support a noreturn attribute on
function pointer types.  So we have to drop these here.  There are
only two instances at this time, so it's not a big loss.  In one case,
we can make up for it by adding the pg_noreturn to a wrapper function
and adding a pg_unreachable(), in the other case, the latter was
already done before.

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
2025-03-13 12:37:26 +01:00
..
expected pgcrypto: Add support for CFB mode in AES encryption 2025-02-14 21:18:37 +01:00
sql pgcrypto: Add support for CFB mode in AES encryption 2025-02-14 21:18:37 +01:00
.gitignore Support SCRAM-SHA-256 authentication (RFC 5802 and 7677). 2017-03-07 14:25:40 +02:00
crypt-blowfish.c Remove support for HPPA (a/k/a PA-RISC) architecture. 2024-07-01 13:55:52 -04:00
crypt-des.c Replace remaining StrNCpy() by strlcpy() 2020-08-10 23:20:37 +02:00
crypt-gensalt.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
crypt-md5.c pgcrypto: Remove static storage class from variables 2025-02-06 15:13:40 +01:00
Makefile Remove support for linking with libeay32 and ssleay32 2025-02-06 20:26:46 +01:00
mbuf.c pgcrypto: Remove unused code 2022-09-14 21:58:30 +02:00
mbuf.h Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
meson.build pgcrypto: Add function to check FIPS mode 2025-01-24 14:18:40 +01:00
openssl.c pgcrypto: Add support for CFB mode in AES encryption 2025-02-14 21:18:37 +01:00
pgcrypto--1.1--1.2.sql
pgcrypto--1.2--1.3.sql
pgcrypto--1.3--1.4.sql pgcrypto: Add function to check FIPS mode 2025-01-24 14:18:40 +01:00
pgcrypto--1.3.sql
pgcrypto--1.0--1.1.sql
pgcrypto.c pgcrypto: Make it possible to disable built-in crypto 2025-01-24 14:25:08 +01:00
pgcrypto.control pgcrypto: Add function to check FIPS mode 2025-01-24 14:18:40 +01:00
pgcrypto.h
pgp-armor.c Add some const qualifiers 2023-09-26 11:28:57 +01:00
pgp-cfb.c pgcrypto: Remove internal padding implementation 2022-03-22 08:58:44 +01:00
pgp-compress.c Improve const use in zlib-using code 2023-08-07 09:34:38 +02:00
pgp-decrypt.c pgcrypto: Fix check for buffer size 2024-01-30 11:15:46 +01:00
pgp-encrypt.c Remove custom memory allocation layer in pgcrypto 2020-09-25 10:25:55 +09:00
pgp-info.c Dial back -Wimplicit-fallthrough to level 3 2020-05-13 15:31:14 -04:00
pgp-mpi-openssl.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-mpi.c Remove custom memory allocation layer in pgcrypto 2020-09-25 10:25:55 +09:00
pgp-pgsql.c pgcrypto: Fix incorrect argument vs PG_GETARG*() mappings 2024-02-14 08:59:05 +09:00
pgp-pubdec.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-pubenc.c Remove custom memory allocation layer in pgcrypto 2020-09-25 10:25:55 +09:00
pgp-pubkey.c Remove custom memory allocation layer in pgcrypto 2020-09-25 10:25:55 +09:00
pgp-s2k.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp.c pgcrypto: Remove unused code 2022-09-14 21:58:30 +02:00
pgp.h Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
px-crypt.c pgcrypto: Make it possible to disable built-in crypto 2025-01-24 14:25:08 +01:00
px-crypt.h Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
px-hmac.c Remove custom memory allocation layer in pgcrypto 2020-09-25 10:25:55 +09:00
px.c Remove redundant memset call following palloc0 2022-10-13 23:18:00 +02:00
px.h pg_noreturn to replace pg_attribute_noreturn() 2025-03-13 12:37:26 +01:00