https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120578
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Since signed integer overflow is undefined, gcc assumes it does not happen. So in this case gcc thinks the loop will not reach the overflow and removes the end bounda check.