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



Richard Biener <rguenth at gcc dot gnu.org> changed:



           What    |Removed                     |Added

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

             Status|UNCONFIRMED                 |ASSIGNED

   Last reconfirmed|                            |2013-01-30

         AssignedTo|unassigned at gcc dot       |rguenth at gcc dot gnu.org

                   |gnu.org                     |

   Target Milestone|---                         |4.8.0

            Summary|ICE segfault in do_pre /    |[4.8 Regression] ICE

                   |tail_merge_optimize         |segfault in do_pre /

                   |                            |tail_merge_optimize

     Ever Confirmed|0                           |1



--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> 2013-01-30 
15:56:27 UTC ---

Confirmed.



1119        case GIMPLE_ASSIGN:

1120          lhs1 = gimple_get_lhs (s1);

1121          lhs2 = gimple_get_lhs (s2);

1122          if (gimple_vdef (s1))

1123            {

1124              if (vn_valueize (gimple_vdef (s1)) != vn_valueize

(gimple_vdef (s2)))



s2 isn't a store.



Index: gcc/tree-ssa-tail-merge.c

===================================================================

--- gcc/tree-ssa-tail-merge.c   (revision 195574)

+++ gcc/tree-ssa-tail-merge.c   (working copy)

@@ -1121,6 +1121,8 @@ gimple_equal_p (same_succ same_succ, gim

       lhs2 = gimple_get_lhs (s2);

       if (gimple_vdef (s1))

        {

+         if (!gimple_vdef (s2))

+           return false;

          if (vn_valueize (gimple_vdef (s1)) != vn_valueize (gimple_vdef (s2)))

            return false;

          if (TREE_CODE (lhs1) != SSA_NAME



fixes it.

Reply via email to