http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59932
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I don't see why you think this is not undefined behavior. If p1 starts at 1, it cannot turn into 0 as p1++ overflows during the 2147483646th iteration.