https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127958
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot
gnu.org
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2026-10-19
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
/* Return the starting bit offset of BIT_FIELD_REF T, in cases where it is
known to be a poly_uint64. (This is always true at the gimple level.) */
inline poly_uint64
bit_field_offset (const_tree t)
{
return tree_to_poly_uint64 (TREE_OPERAND (t, 2));
}
but FRE itself violates this in
0x0000000001e1cc70 in eliminate_dom_walker::eliminate_stmt (this=0x5546b60,
b=<basic_block 0x7ffff6600120 (2)>, gsi=0x7fffffffd4d0)
at /space/rguenther/src/gcc-clean/gcc/tree-ssa-sccvn.cc:7518
7513 tree foff = component_ref_field_offset (lhs);
7514 tree f = TREE_OPERAND (lhs, 1);
7515 if (!poly_int_tree_p (foff))
7516 lookup_lhs = NULL_TREE;
7517 else
7518 lookup_lhs = build3 (BIT_FIELD_REF, ltype,
7519 TREE_OPERAND (lhs, 0),
7520 TYPE_SIZE (TREE_TYPE (lhs)),
7521 bit_from_pos
7522 (foff, DECL_FIELD_BIT_OFFSET
(f)));