On Thu, May 26, 2011 at 09:26:58AM -0400, Jason Merrill wrote:
> On 05/26/2011 06:32 AM, Jakub Jelinek wrote:
> >gimplify_cond_expr knows how to gimplify this, but shortcut_cond_r
> >tried to optimize
> >if (a ? b : throw 1) goto yes; else goto no;
> >into
> >if (a)
> >   if (b) goto yes; else goto no;
> >else
> >   if (throw 1) goto yes; else goto no;
> >which ICEs or errors out.  Fixed by not trying to optimize
> >such COND_EXPRs.
> 
> Why not optimize them to
> 
> if (!a)
>   throw 1;
> if (b) goto yes; else goto no;
> 
> ?

That is how it ends up being optimized later on, I just think
given how long the bug has been in this is so rare that
we don't need to try to optimize it already at the gimplifier level.

        Jakub

Reply via email to