https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68031
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Yeah, it hits fold_stmt and follows SSA edges via nonnegative but it is not supposed to (follow SSA edges). Reduced testcase: void _mktm_r (long lcltime, int *res) { long rem = lcltime % ((60L * 60L) * 24L); if (rem < 0) return; while (rem >= ((60L * 60L) * 24L)) rem -= ((60L * 60L) * 24L); *res = (int) (rem % 60L); }