https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125603

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2026-06-05
     Ever confirmed|0                           |1
                 CC|                            |hubicka at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

#1  0x000000000128a039 in profile_probability::apply_scale (
    this=0x7fffffffd134, num=1, den=0) at ../../src/gcc/gcc/profile-count.h:554
554           safe_scale_64bit (m_val, num, den, &tmp);

#3  0x000000000194c858 in set_even_probabilities (
    bb=<basic_block 0x7ffff743eea0 (7)>, unlikely_edges=0x7fffffffd1d0, 
    likely_edges=0x7fffffffd210) at ../../src/gcc/gcc/predict.cc:968
968                     e->probability = remainder / count;
(gdb) l
963                     remainder -= (profile_probability::very_unlikely ()
964                                   * unlikely_count);
965                     int count = nedges - unlikely_count - 1;
966                     gcc_assert (count >= 0);
967
968                     e->probability = remainder / count;

I guess the assert should have been count > 0 (which then would have tripped as
well)?

We have a switch with all outgoing edges predicated unlikely ...

Reply via email to