http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56854



Jakub Jelinek <jakub at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

                 CC|                            |jakub at gcc dot gnu.org



--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-04-08 
14:15:17 UTC ---

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;

Reply via email to