------- Comment #21 from hjl dot tools at gmail dot com 2009-01-20 05:00 ------- (In reply to comment #20) > The problem may something to do with > > setjmp > ... > while (1) > { > foo (); // foo calls longjmp and foo is inlined. > } >
The problem is if (setjmp (buf)) { /* Restore registers from stack. */ } while (1) { bar (); /* Reuse stack slots used to restore registers after longjmp. */ foo (); /* Call longjmp. */ } IRA should avoid reusing stack slots used to restore registers after longjmp. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38587