On Tue, Nov 26, 2024 at 4:57 AM Peter Eisentraut <peter@eisentraut.org> wrote:
> Where does this leave us regarding backpatching the other two
> C23-related patches? The node tree walker issue looks like a very hard
> barrier. I don't want to spend too much effort backpatching anything to
> ancient version if there's little hope of getting the whole thing working.
Oh. Yeah. 1c27d16e6e5 was not back-patchable. And what f9a56e72 did
in 15 and older doesn't seem to have any equivalent in C23, at least
without going way overboard. -Wdeprecated-non-prototype was
recognising a category of function type that no longer exists, so the
code now falls into the more general case of
-Wincompatible-pointer-types in C23, which you certainly wouldn't want
to suppress. So perhaps we actually can't make any branch older than
PostgreSQL 16 into a valid C23 program, and if that's true, I needn't
have back-patched the <stdbool.h> change any further back than 16.
Perhaps we should reconsider that, then. And if it can't be all the
back-branches, we could even decide to focus just on master. Where do
we want our C23 support to begin?
Coincidental observation: We added -Wdeprecated-non-prototype back
when Clang 15 invented it, but I noticed that GCC 15 has just now
added it too[1], so alligator started detecting and using that in
REL_15_STABLE last week. Of course it doesn't help once you're
talking C23.
[1] https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=701d8e7e60b85809cae348c1e9edb3b0f4924325
[2] https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=alligator&dt=2024-11-18%2019%3A23%3A30&stg=configure