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

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Marc Glisse from comment #3)
> This very minor variant also misbehaves with 4.7 and 4.6, so before my
> patch. An unsafe instruction (1%f) is taken out of a branch in ifcombine.
> 
> int a, b = 1, c, d, e, f, g;
> 
> int
> fn1 ()
> {
>   int h;
>   for (;;)
>     {
>       g = b;
>       g = g ? 0 : 1 % g;
>       e = a + 1;
>       for (; d < 1; d = e)
>         {
>           if (f == 0)
>             h = 0;
>           else
>             h = 1 % f;
>           if (f < 1)
>             c = 0;
>           else if (h)
>             break;
>         }
>       if (b)
>         return 0;
>     }
> }
> 
> int
> main ()
> {
>   fn1 ();
>   return 0;
> }

I have a patch in testing.  (and fixed the tree PRE issue in the past...)

Reply via email to