Re: [PATCH 1/1] newlib/libc/include/setjmp.h: Add returns_twice attribute to setjmp()
Joel Sherrill <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <CAF9ehCVNPjm7jv+qUKzTt_Tv=SAGbBdL6ODShW3hEwMWjH68qQ@mail.gmail.com> |
On Wed, Oct 1, 2025 at 2:23 AM Torbjorn SVENSSON < [email protected]> 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. > Yes. Thanks. > > > +#else > > I think you should also drop the empty "#else" block. > It was supposed to have a setjmp() prototype without the attribute. This is following the pattern above with longjmp() which has it this way. v2 will fix these. --joel > > Kind regards, > Torbjörn > > > +#endif > > > > _END_STD_C > > > >