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 ?