Re: pg_attribute_noreturn(), MSVC, C11
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: Andres Freund <andres@anarazel.de>, pgsql-hackers@lists.postgresql.org
Cc: pgsql-hackers@postgresql.org, Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>, Thomas Munro <thomas.munro@gmail.com>
Date: 2025-03-13T12:43:30Z
Lists: pgsql-hackers
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.
Commits
-
Use standard C23 and C++ attributes if available
- 76f4b92bac87 19 (unreleased) landed
-
Swap order of extern/static and pg_nodiscard
- 05cbd6cb22d2 18.0 landed
-
pg_noreturn to replace pg_attribute_noreturn()
- 3691edfab971 18.0 landed