On 06.01.25 15:52, Peter Eisentraut wrote:
> On 03.01.25 21:51, Dagfinn Ilmari Mannsåker wrote:
>> Peter Eisentraut <peter@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))