http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59039

--- Comment #9 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> What restrictions do they have? Can they be used within the
> same function? Can they be used within functions with parameters?

The only restriction I know of is that they cannot be in the same function,
it's even enforced by the inliner:

      case BUILT_IN_LONGJMP:
        /* We can't inline functions that call __builtin_longjmp at
           all.  The non-local goto machinery really requires the
           destination be in a different function.  If we allow the
           function calling __builtin_longjmp to be inlined into the
           function calling __builtin_setjmp, Things will Go Awry.  */
        inline_forbidden_reason
          = G_("function %q+F can never be inlined because "
           "it uses setjmp-longjmp exception handling");

Reply via email to