[Bug tree-optimization/56150] [4.8 Regression] ICE segfault in do_pre / tail_merge_optimize

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jan 30 15:57:00 GMT 2013


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.



More information about the Gcc-bugs mailing list