Implement C23 const-preserving standard library macros

Florian Weimer fweimer@redhat.com
Mon Jan 19 17:20:38 GMT 2026


* Joseph Myers:

> On Mon, 19 Jan 2026, Florian Weimer wrote:
>
>> * Andreas Schwab:
>> 
>> > On Nov 18 2025, Joseph Myers wrote:
>> >
>> >> C23 makes various standard library functions, that return a pointer
>> >> into an input array, into macros that return a pointer to const when
>> >> the relevant argument passed to the macro is a pointer to const.
>> >
>> > Shouldn't this be disabled when compiling with -std=gnu17?
>> 
>> Siddhesh and I discussed this for a bit.
>> 
>> They should be disabled for !__STRICT_ANSI__, which includes -std=gnu17.
>
> That sounds very questionable to me.  If someone uses -std=gnu23 (or has 
> it on by default with GCC >= 15), or -std=gnu17 -D_ISOC23_SOURCE or 
> -std=gnu17 -D_GNU_SOURCE, etc., I'd expect them to get C23 features of the 
> form "extra type checking" just like those of the form "new functions".

Indeed, I confused this with the once_flag change.

Thanks for catching this,
Florian



More information about the Libc-alpha mailing list