[Bug middle-end/91242] ICE on aarch64 SVE tests - gcc.target/aarch64/sve/clastb_[146].c
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jul 24 07:54:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91242
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |aarch64-linux-gnu
Status|ASSIGNED |NEW
CC| |rsandifo at gcc dot gnu.org
Assignee|marxin at gcc dot gnu.org |unassigned at gcc dot gnu.org
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
So it's a real discrepancy in between hash and equal function:
This value is being inserted:
$ (gdb) p debug_tree(comparable.first)
<integer_type 0x7ffff7898d20 public unsigned SI
size <integer_cst 0x7ffff76a1f78 type <integer_type 0x7ffff76b20a8
bitsizetype> constant 32>
unit-size <integer_cst 0x7ffff76a1f90 type <integer_type 0x7ffff76b2000
sizetype> constant 4>
align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff7898d20 precision:32 min <integer_cst 0x7ffff74aae28 0> max <integer_cst
0x7ffff7782ee8 4294967295>>
$ (gdb) p *comparable.second
$16 = {
<poly_int_pod<2, generic_wide_int<wide_int_storage> >> = {
coeffs = {{
<wide_int_storage> = {
val = {29, 140737488336336, 140737488336432, 12171194,
140737488336536, 140737488337344, 140737488336352, 137438953473, 0},
len = 1,
precision = 32
},
members of generic_wide_int<wide_int_storage>:
static is_sign_extended = true
}, {
<wide_int_storage> = {
val = {-4, 137438953473, 480890236520, 576, 140737488336448,
137438953473, -17179869184, 137463206123, 140737488336464},
len = 1,
precision = 32
},
members of generic_wide_int<wide_int_storage>:
static is_sign_extended = true
}}
}, <No data fields>}
with the following hash:
(gdb) p hash
$17 = 941189640
Existing hash table entry:
(gdb) p debug_tree(*entry)
<poly_int_cst 0x7ffff74e9de0
type <integer_type 0x7ffff7898d20 public unsigned SI
size <integer_cst 0x7ffff76a1f78 constant 32>
unit-size <integer_cst 0x7ffff76a1f90 constant 4>
align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff7898d20 precision:32 min <integer_cst 0x7ffff74aae28 0> max <integer_cst
0x7ffff7782ee8 4294967295>>
constant
elt0: <integer_cst 0x7ffff74ec2d0 type <integer_type 0x7ffff7898d20>
constant 29>
elt1: <integer_cst 0x7ffff74dced0 type <integer_type 0x7ffff7898d20>
constant 4294967292>>
$ (gdb) p Descriptor::hash (*entry)
$19 = 1141032448
Richard, can you please take a look?
More information about the Gcc-bugs
mailing list