http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56854
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> 2013-04-08 15:03:19 UTC --- (In reply to comment #3) > So like this? > > Reducing testcase now... > > --- tree-ssa-forwprop.c.jj12013-02-25 23:51:21.000000000 +0100 > +++ tree-ssa-forwprop.c2013-04-08 16:12:37.908611768 +0200 > @@ -826,7 +826,11 @@ forward_propagate_addr_expr_1 (tree name > && integer_zerop (TREE_OPERAND (lhs, 1)) > && useless_type_conversion_p > (TREE_TYPE (TREE_OPERAND (def_rhs, 0)), > - TREE_TYPE (gimple_assign_rhs1 (use_stmt)))) > + TREE_TYPE (gimple_assign_rhs1 (use_stmt))) > + /* Don't forward anything into clobber stmts if it would result > + in the lhs no longer being a MEM_REF. */ > + && (!gimple_clobber_p (use_stmt) > + || TREE_CODE (TREE_OPERAND (def_rhs, 0)) == MEM_REF)) > { > tree *def_rhs_basep = &TREE_OPERAND (def_rhs, 0); > tree new_offset, new_base, saved, new_lhs; Yes.