https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84873
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice-on-valid-code, | |wrong-code Component|tree-optimization |c --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Note GCC 6 generated wrong code instead: i1 (int w3, int n9) { int D.1760; unsigned int iftmp.0; double D.1764; long int D.1765; unsigned int D.1766; if (n9 == 0) goto <D.1762>; else goto <D.1763>; <D.1762>: D.1764 = 1.0e+0 + 1.000000000000000055511151231257827021181583404541015625e-1; D.1765 = (long int) D.1764; D.1766 = (unsigned int) D.1765; iftmp.0 = D.1766 + 4294967295; goto <D.1767>; <D.1763>: iftmp.0 = (unsigned int) D.1765; <D.1767>: D.1760 = w3 >> iftmp.0; return D.1760; } note how D.1765 is used uninitialized.