https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82072
--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> --- But that's only a half of the problem here, for i = -lmin; we produce i = (int) -(unsigned int) lmin; thus again hiding that overflow.