------- Comment #23 from hjl dot tools at gmail dot com  2009-01-20 14:24 
-------
(In reply to comment #22)
> From tree-inline.c:
> 
>           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.  */
> 
> so IMHO we shouldn't inline foo ().  See inline_forbidden_p_stmt.
> 

foo () isn't inlined. We inline bar () which reuses stack slot used
to restore registers after longjmp, which is called from foo ().


-- 


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

Reply via email to