I'm going to postpone the remaining two patches (about pg_nodiscard). After experimenting a bit more, I'm less sure about what the correct placement of C23 attributes is meant to be, and without understanding that, I fear this would make the earlier question about the correct placement of pg_noreturn unnecessarily more complicated. This can be a future project.
I committed the first two patches (squashed together) (about
pg_noreturn). I had to make one change: I put back the GCC fallback
that I had removed between v1 and v2. This is needed for GCC versions
before C11 became the default (gcc 5) and also for situations like
buildfarm member mylodon that builds with -std=c99 explicitly.
(Otherwise, that configuration would get a bunch of compiler warnings
about uninitialized variables etc.) I also added the additional comment
about placement that you had requested.
- Re: pg_attribute_noreturn(), MSVC, C11 Peter Eisentraut
- Re: pg_attribute_noreturn(), MSVC, C11 Andres Freund
- Re: pg_attribute_noreturn(), MSVC, C11 Peter Eisentraut
- Re: pg_attribute_noreturn(), MSVC, C11 Andres Freund
- Re: pg_attribute_noreturn(), MSVC, C11 Peter Eisentraut
- Re: pg_attribute_noreturn(), MSVC, ... Peter Eisentraut