https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71876

--- Comment #9 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
(In reply to Jeffrey A. Law from comment #8)
> Light searching doesn't find anything useful for setjmp_syscall.
> 
> savectx however still shows up in a variety of solaris searches.  In fact,
> you can find references to it in Solaris 10.  So I'd say that's not dead.
> 
> qsetjmp was used by the 4.3 BSD m68k port and its derivatives. It was
> removed sometime after 2011.   I don't work on the m68k or BSD bits anymore
> and I'd be amazed if anyone ever noticed if support was removed.  I won't
> object if it's removed.

OK. Thanks.  Have you any opinion about the "__x" prefix?

The problem with the savectx, and getcontext is this:

If you ask ordinary people, who use gcc every day, if they have ever heard
about a function, that is called savectx or getcontext, then the answer
will be no.  That means that they could choose that name for a function
that they may use for their daily work.

Now GCC does silently add the equivalent of __attribute__((returns_twice,
leaf)) to a user function by that name, and that creates no warning at all.

leaf is likely to cause invalid code in a scenario as comment#2
so I would like to at least remove the leaf here.

But also the returns_twice will cause confusion.

This will eventually trigger a Wclobbered warning,
and the bad thing here is the warning complains about
"variable %q+D might be clobbered by %<longjmp%> or %<vfork%>"
(I think there are still many unclear BZ about Wclobbered)

How should they know that the reason is the unfortunate coosing
of getcontext or savectx as a function name?

To mitigate that we should make savectx a builtin so you can
get at least a warning about the builtin parameter mismatch.

I know what getcontext is supposed to look like,
but what is the correct function header for savectx ?

Reply via email to