diff options
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 12 |
1 files changed, 1 insertions, 11 deletions
@@ -3846,17 +3846,7 @@ expand_assignment (to, from, want_value, suggest_reg) DECL_RTX of the parent struct. Don't munge it. */ to_rtx = shallow_copy_rtx (to_rtx); - set_mem_attributes (to_rtx, to, 0); - - /* If we changed MEM_EXPR, that means we're now referencing - the COMPONENT_REF, which means that MEM_OFFSET must be - relative to that field. But we've not yet reflected BITPOS - in TO_RTX. This will be done in store_field. Adjust for - that by biasing MEM_OFFSET by -bitpos. */ - if (MEM_EXPR (to_rtx) != old_expr && MEM_OFFSET (to_rtx) - && (bitpos / BITS_PER_UNIT) != 0) - set_mem_offset (to_rtx, GEN_INT (INTVAL (MEM_OFFSET (to_rtx)) - - (bitpos / BITS_PER_UNIT))); + set_mem_attributes_minus_bitpos (to_rtx, to, 0, bitpos); } /* Deal with volatile and readonly fields. The former is only done |