------- Comment #24 from rguenther at suse dot de 2009-01-20 15:01 ------- Subject: Re: [4.4 Regression] psim miscompiled #2
On Tue, 20 Jan 2009, hjl dot tools at gmail dot com wrote: > ------- 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 (). Still I don't think this is an IRA bug. Either this code is sort-of non-conforming or we need to throttle down inlining more. Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38587