Re: [PATCH 1/1] newlib/libc/include/setjmp.h: Add returns_twice attribute to setjmp()
"Richard Earnshaw (lists)" <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
On 01/10/2025 08:22, Torbjorn SVENSSON wrote: > Hi Joel, > > 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. > > Kind regards, > Torbjörn > >> +#endif >> _END_STD_C >> > ansidecl.h provides some infrastructure to handle all this. Wouldn't it be better to follow that model? In particular you can then arrange for your macro to check the actual GCC version. R.