------- Comment #32 from rguenther at suse dot de 2009-04-16 08:45 ------- Subject: Re: [4.5 regression] Revision 145338 breaks ability to build Ada
On Thu, 16 Apr 2009, ebotcazou at gcc dot gnu dot org wrote: > ------- Comment #31 from ebotcazou at gcc dot gnu dot org 2009-04-16 08:33 > ------- > > Do you happen to have a testcase? > > Attached in the PR. > > <bb 22>: > formal_24(ab) = p__proc_next (formal_6(ab)); > goto <bb 3>; > > # formal_7(ab) = PHI <formal_9(ab)(2), formal_5(ab)(3), formal_5(ab)(4), > formal_7(ab)(6), formal_6(ab)(9), formal_6(ab)(10), formal_6(ab)(11), > formal_6(ab)(12), formal_6(ab)(13), formal_24(ab)(22), formal_6(ab)(14), > formal_6(ab)(15), formal_6(ab)(16), formal_6(ab)(17), formal_6(ab)(18), > formal_6(ab)(19), formal_6(ab)(20)> > > the reaching SSA_NAME on the abnormal edge is wrong. This breaks inlining. Hum, an Ada testcase ... so p__proc_next calls longjmp, correct? And the target in question uses SJLJ exceptions (so this particular case is an exception problem)? I wonder if a C testcase explicitly using setjmp/longjmp would be valid with all the constraints placed on how they interact on register variable values. I'll dig into where we deal with SJLJ EH lowering ... :/ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39625