I received on off-list report that commit e2809e3a101 causes an error when building an extension written in C++, since $subject is in a header file. The fix is simply to add an explicit cast, so I plan to push the attached soon.
Bikeshedding: We could additionally change the pg_crc*.c files to make them consistent, but I have not done that yet. It seems we prefer explicit casts anyway but don't enforce that. -- John Naylor Amazon Web Services
From fa45ec41de5201906ca1d6be663eb06f9ded5de4 Mon Sep 17 00:00:00 2001 From: John Naylor <john.nay...@postgresql.org> Date: Tue, 1 Jul 2025 09:54:05 +0700 Subject: [PATCH v1] Add cast from pointer to void Commit e2809e3a101 added code to a header which assigns a pointer to void to a pointer to unsigned char. This causes build errors for extensions written in C++. Fix by adding an explicit cast. Discussion: https://postgr.es/m/ Backpatch-through: 18 --- src/include/port/pg_crc32c.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/include/port/pg_crc32c.h b/src/include/port/pg_crc32c.h index 82313bb7fcf..ae008118ea8 100644 --- a/src/include/port/pg_crc32c.h +++ b/src/include/port/pg_crc32c.h @@ -72,7 +72,7 @@ pg_comp_crc32c_dispatch(pg_crc32c crc, const void *data, size_t len) { if (__builtin_constant_p(len) && len < 32) { - const unsigned char *p = data; + const unsigned char *p = (const unsigned char *) data; /* * For small constant inputs, inline the computation to avoid a -- 2.50.0