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)));

Reply via email to