http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56394
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-19 14:15:18 UTC --- Also reproduces with optimization but with -fno-inline. The issue must be with the exact division: D.2616_5 = end.0_3 - beg.1_4; D.2617_6 = D.2616_5 /[ex] 12; the difference is 4088 but that does not divide by 12. Which means your computed end is not correct (the pointers cannot point to elements of an array of Xyz).