https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117166
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- maybe changing if (line_delta < 0 || (line_delta > 10 && line_delta * map->m_column_and_range_bits > 1000) to if (line_delta < 0 || line_delta > INT_MAX / map->m_column_and_range_bits || (line_delta > 10 && line_delta * map->m_column_and_range_bits > 1000) or performing the multiplication in int64_t fixes it? The compare could also just be line_delta > 1000, I don't think m_column_and_range_bits is ever so big that a smaller line_delta overflows the multiplication.