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.
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.