http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49123
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2011.05.23 13:17:55 Target Milestone|--- |4.6.1 Ever Confirmed|0 |1 --- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-05-23 13:17:55 UTC --- Confirmed. FRE does <bb 2>: s.f = 1; - D.2698_4 = s.f; - D.2699_5 = (unsigned int) D.2698_4; - if (D.2699_5 != 4294967295) - goto <bb 3>; - else - goto <bb 4>; - -<bb 3>: + D.2698_4 = 1; + D.2699_5 = 1; so it fails to properly sign-extend D.2698_4.