On 06.01.25 15:52, Peter Eisentraut wrote:
On 03.01.25 21:51, Dagfinn Ilmari Mannsåker wrote:
Peter Eisentraut <pe...@eisentraut.org> writes:
I suggest we define pg_noreturn as
1. If C11 is supported, then _Noreturn, else
2. If GCC-compatible, then __attribute__((noreturn)), else
Would it be worth also checking __has_attribute(noreturn)? Or do all
compilers that have __attribute__((noreturn)) claim to be GCC?
I don't think that would expand the set of supported compilers in a
significant way. We can always add it if we find one, of course.
In fact, as another thought, we could even drop #2. Among the
GCC-compatible compilers, both GCC and Clang have supported #1 for ages,
and the only other candidate I could find on the build farm is the
Solaris compiler, which also supports C11 by default, per its documentation.
3. If MSVC, then __declspec((noreturn))