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.

Reply via email to