On Wed, 2012-01-04 at 09:59 +1100, Richard Henderson wrote: > On 01/03/2012 09:42 PM, Torvald Riegel wrote: > >> Why does the explicit CFG approach not work exactly? cfun->calls_setjmp > >> is > >> thought to be quite a big hammer. > > > > I don't know, actually. When I looked at the miscompilation case, all > > abnormal edges seemed to be in place. > > > > @rth: Do you have an idea what could be going wrong? I haven't tried > > the other thing you sent me, what was it supposed to fix? > > There are several places where those edges (currently) get lost going > from gimple to rtl. In addition, return value copy from the hard reg > to the pseudo is in the wrong basic block wrt the abnormal edges. > > My inclination at this point is to use returns_twice for the 4.7 release > and fix the abcall edges and associated fiddlery in 4.8 stage1. I'm not > especially confident that we'd clear out all the bugs in time otherwise.
I committed Richard's returns-twice patch as a work-around for now (r182937), and created PR 51771 for this.