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

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tkoenig at gcc dot gnu.org

--- Comment #11 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
At the place where the ICE happens:

     gcc_checking_assert (precision == x.get_precision ());

(gdb) p precision
$1 = 64
(gdb) p x
$2 = (const generic_wide_int<wide_int_storage> &) @0x7fffffffca10:
{<wide_int_storage> = {val = {-1, 140737340585456, 140737340585456}, len = 1, 
    precision = 32}, static is_sign_extended = <optimized out>}

Looking up the call chain, the following can be found:

gimple_simplify_174 (res_code=0x7fffffffcbcc, res_ops=0x7fffffffcbd0,
type=0x7ffff7168b28, captures=0x7fffffffcad0, cmp=EQ_EXPR, 
    valueize=0xad6320 <no_follow_ssa_edges(tree_node*)>, seq=0x7fffffffcd18) at
gimple-match.c:7605

so it can be assumed that the type of a comparison goes wrong.

Hmm... there is no difference visible in the tree dumps. However,
there is the line

      if (x->_vptr->_hash == 64409183)

in the dump. Maybe the types on the left and right hand sides do
not agree?

Reply via email to