https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111365
--- Comment #3 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- (In reply to Xi Ruoyao from comment #2) > int a, c, d, e = -1233286202, f = -1233286202; > > ... > > if (l <= 0 || &c + l > &d) > > I suppose this is invoking undefined behavior. Nope, the problematic &c + l > &d should be short-cut by l <= 0.