http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59039
--- Comment #26 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > I would not say that __builtin_setjmp is more efficient. It really saves > just as many registers, except that it has help from the containing > function's prologue/epilogue to do so, rather than saving them all within the > jmpbuf. [As well as from the register allocator]. I think it's more efficient though, for example if you implement an SJLJ exception scheme on top of it. > I'm not keen on encouraging any user to use these functions. > It's simply not worth it to us as maintainers. > > The fact that we've got code in libgcc that uses them means that we must > continue to have these functions callable by some means. If folks would be > happier if we hid these from users by making them only callable with some > special option like -fbuild-libgcc, I could live with that. IMO it's too late to hide them after 2 decades. If people are really afraid of them, then we could keep the status quo.