https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88621
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The expander is unprepared to deal with MEM_REFs for bitfields, it really wants to see a COMPONENT_REF for those cases, but the r267296 code happily creates those. *mem is COMPONENT_REF with first argument VAR_DECL e and second argument FIELD_DECL b, (*slot)->mem.ref is a COMPONENT_REF with first argument MEM_REF[&e, 0] and second argument FIELD_DECL b and the code happily creates a MEM_REF out of this. So, either we need to punt for the bitfield cases, or e.g. handle the case where we have the same FIELD_DECL by creating a MEM_REF for the base and use COMPONENT_REF on top of that and punt otherwise.