On Wed, Apr 9, 2008 at 9:24 PM, Andy Dougherty <[EMAIL PROTECTED]> wrote: > On Wed, 9 Apr 2008, Will Coleda via RT wrote: > > > On Fri Apr 04 22:28:31 2008, [EMAIL PROTECTED] wrote: > > > On Thursday 03 April 2008 11:22:16 Andy Dougherty wrote: > > > > > > > > parrot-andy/compilers/imcc/optimizer.c --- > > > > parrot-svn/compilers/imcc/optimizer.c 2008-03-31 15:14:39.000000000 > > -0400 > > > > +++ parrot-andy/compilers/imcc/optimizer.c 2008-04-03 > 13:14:52.000000000 > > > > -0400 @@ -976,8 +976,10 @@ > > > > * from the result > > > > */ > > > > branched = eval_ins(interp, op, found, r); > > > > - if (branched == -1) > > > > + if (branched == -1) { > > > > + *ok = 0; /* XXX Is this return value sensible? */ > > > > return NULL; > > > > + } > > > > > > Sadly, this part doesn't work because of the other call to this > > function. > > > I've applied the rest of the patch with some tweaks as r26763. > > > > > > > Andy, does this test pass for you now? > > Yes, it should, since the initialization is now done in the calling > function. I'd be happier if the following comment-only patch were > applied, so that next time someone tries to address the deeper problem > there's at least a flag in the code about one of the question spots. > > --- parrot-svn/compilers/imcc/optimizer.c Mon Apr 7 09:26:28 2008 > +++ parrot-andy/compilers/imcc/optimizer.c Wed Apr 9 17:47:43 2008 > @@ -980,8 +980,10 @@ > > * from the result > */ > branched = eval_ins(interp, op, found, r); > - if (branched == -1) > - return NULL; > + if (branched == -1) { > + /* XXX Deliberately not setting *ok. See [perl #43048] */ > + return NULL; > + } > /* > * for math ops result is in I0/N0 > * if it was a branch with constant args, the result is > > -- > Andy Dougherty [EMAIL PROTECTED] > >
Applied something very similar in r26891. Thanks again for the report, closing the ticket. -- Will "Coke" Coleda