pgsql: Make checksum_impl.h safe to compile with -fstrict-aliasing.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Make checksum_impl.h safe to compile with -fstrict-aliasing.
Дата
Msg-id E1fvmH0-0007eN-AE@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Make checksum_impl.h safe to compile with -fstrict-aliasing.

In general, Postgres requires -fno-strict-aliasing with compilers that
implement C99 strict aliasing rules.  There's little hope of getting
rid of that overall.  But it seems like it would be a good idea if
storage/checksum_impl.h in particular didn't depend on it, because
that header is explicitly intended to be included by external programs.
We don't have a lot of control over the compiler switches that an
external program might use, as shown by Michael Banck's report of
failure in a privately-modified version of pg_verify_checksums.

Hence, switch to using a union in place of willy-nilly pointer casting
inside this file.  I think this makes the code a bit more readable
anyway.

checksum_impl.h hasn't changed since it was introduced in 9.3,
so back-patch all the way.

Discussion: https://postgr.es/m/1535618100.1286.3.camel@credativ.de

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/9daff2fe69dcfaf29c7901b9e6bad285778a45c0

Modified Files
--------------
src/include/storage/checksum_impl.h | 38 ++++++++++++++++++++++---------------
1 file changed, 23 insertions(+), 15 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Etsuro Fujita
Дата:
Сообщение: pgsql: Disable support for partitionwise joins in problematic cases.
Следующее
От: Alexander Korotkov
Дата:
Сообщение: pgsql: Enforce cube dimension limit in all cube construction functions