Re: pg_attribute_noreturn(), MSVC, C11
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: pgsql-hackers@lists.postgresql.org,
Peter Eisentraut <peter@eisentraut.org>
Cc: pgsql-hackers@postgresql.org, Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>, Thomas Munro <thomas.munro@gmail.com>
Date: 2025-03-10T14:38:59Z
Lists: pgsql-hackers
Hi,
On March 10, 2025 10:37:43 AM EDT, Peter Eisentraut <peter@eisentraut.org> wrote:
>On 10.03.25 14:58, Andres Freund wrote:
>>> diff --git a/src/backend/utils/mmgr/slab.c b/src/backend/utils/mmgr/slab.c
>>> index ec8eddad863..d32c0d318fb 100644
>>> --- a/src/backend/utils/mmgr/slab.c
>>> +++ b/src/backend/utils/mmgr/slab.c
>>> @@ -601,8 +601,8 @@ SlabAllocFromNewBlock(MemoryContext context, Size size, int flags)
>>> * want to avoid that.
>>> */
>>> pg_noinline
>>> +pg_noreturn
>>> static void
>>> -pg_attribute_noreturn()
>>> SlabAllocInvalidSize(MemoryContext context, Size size)
>>> {
>>> SlabContext *slab = (SlabContext *) context;
>> Hm, is it good to put the pg_noreturn after the pg_noinline?
>
>I probably just did them alphabetically. I don't think there would be a problem, since pg_noinline is an attribute, and they can generally be put everywhere. At least until we learn otherwise.
Just seems easier to document that no return etc should go first. But it's not important.
Andres
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
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