http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59932
--- Comment #2 from Zhendong Su <su at cs dot ucdavis.edu> --- (In reply to Andrew Pinski from comment #1) > 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. Andrew, because "d.f1 > l" is false, so the code simply returns ("return b;"). I also always double-check with CompCert's reference interpreter and Frama-C if possible.