From: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
---|---|
To: | Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org> |
Cc: | Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers(at)postgresql(dot)org, Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
Subject: | Re: pg_attribute_noreturn(), MSVC, C11 |
Date: | 2025-01-22 18:16:03 |
Message-ID: | d4d5d9fd-0a78-4ea9-a2fd-135e93dc6d99@eisentraut.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 06.01.25 15:52, Peter Eisentraut wrote:
> On 03.01.25 21:51, Dagfinn Ilmari Mannsåker wrote:
>> Peter Eisentraut <peter(at)eisentraut(dot)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))
From | Date | Subject | |
---|---|---|---|
Next Message | Corey Huinker | 2025-01-22 18:17:27 | Extended Statistics set/restore/clear functions. |
Previous Message | Andres Freund | 2025-01-22 18:15:59 | Re: Converting pqsignal to void return |