http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51783

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-01-07 
18:25:19 UTC ---
I think that would be an invalid transformation except when -fwrapv is used.
The reason is:
  x.0_2 = (unsigned int) x_1(D);
  D.2715_4 = z_3(D) + x.0_2;  <--- wrapping semantics
  c_5 = (int) D.2715_4;

While:
  D.1720_10 = (int) z_3(D);
  c_5 = x_1(D) + D.1720_10;

Was undefined semantics for overflow.  This cannot happen until we have signed
operations which also have wrapping semantics.

Reply via email to