[PATCH 1/1] newlib/libc/include/setjmp.h: Add returns_twice attribute to setjmp()

Brian Inglis Brian.Inglis@SystematicSW.ab.ca
Wed Oct 1 08:59:07 GMT 2025


On 2025-10-01 01:22, Torbjorn SVENSSON wrote:
> On 2025-09-30 16:49, Joel Sherrill wrote:
>> The setjmp() function needs this attribute to help GCC avoid false
>> positives for the -Wclobbered warning. The -Wclobbered warning is
>> part of -Wextra.
>> ---
>>   newlib/libc/include/setjmp.h | 7 ++++++-
>>   1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/newlib/libc/include/setjmp.h b/newlib/libc/include/setjmp.h
>> index a2830b275..5c16321a4 100644
>> --- a/newlib/libc/include/setjmp.h
>> +++ b/newlib/libc/include/setjmp.h
>> @@ -17,7 +17,12 @@ void    longjmp (jmp_buf __jmpb, int __retval)
>>   #else
>>   void    longjmp (jmp_buf __jmpb, int __retval);
>>   #endif
>> -int    setjmp (jmp_buf __jmpb);
>> +
>> +#ifdef __GNUC__
>> +int    setjmp (jmp_buf __jmpb)
>> +            __attribute__ ((returns_twice));;
> I suppose you only want a single semi-colon here.
>> +#else
> I think you should also drop the empty "#else" block.
>> +#endif
>>   _END_STD_C

Shouldn't the conditional be around the attribute only?

-int    setjmp (jmp_buf __jmpb);
+int	setjmp (jmp_buf __jmpb)
+#ifdef __GNUC__
+		__attribute__ ((returns_twice))
+#endif
+		;

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher  but when there is no more to cut
                                 -- Antoine de Saint-Exupéry


More information about the Newlib mailing list