https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83706
--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> --- Caused by fact we have a sreal number: (gdb) p x $1 = {m_sig = 2096921321, m_exp = -21} (gdb) p x.to_double() $2 = 999.89000368118286 That is transformed in sreal::to_int to: (m_sig >> -m_exp) which ends with 999. Maybe a smarted rounding will be useful. Anyway, can inline_param_summary::change_prob be sreal insread of int. Doing conversion back and forth looks cumbersome.