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.

Reply via email to