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
> >
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.