https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102546

--- Comment #3 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---

> What I fail to see is how "a" got removed entirely from the IL, making this
> scenario possible:
> 
>  if (!(a >= d || f))
>             foo();

What I meant to say is that I don't understand how "a" got removed from the IL
representing this:

 if (!(a >= d || f))
     foo();

Because it's the missing "a" which opens the door for the un-folded expression
here:

    (f_8 << f_8) && (f_8 == 0)

Reply via email to