------- Comment #7 from ubizjak at gmail dot com  2009-11-11 10:37 -------
We recurse with:

simplify_replace_fn_rtx called, x =
(expr_list:REG_DEP_TRUE (symbol_ref:DI ("_OtsGeqX") [flags 0x41])
    (expr_list:REG_DEP_TRUE (mem:TF (reg/f:DI 75 [ array_3(D)->data ]) [3 S16
A128])
        (expr_list:REG_DEP_TRUE (reg:TF 76)
            (nil))))

simplify_replace_fn_rtx called, x =
(symbol_ref:DI ("_OtsGeqX") [flags 0x41])

simplify_replace_fn_rtx called, x =
(expr_list:REG_DEP_TRUE (mem:TF (reg/f:DI 75 [ array_3(D)->data ]) [3 S16
A128])
    (expr_list:REG_DEP_TRUE (reg:TF 76)
        (nil)))

simplify_replace_fn_rtx called, x =
(mem:TF (reg/f:DI 75 [ array_3(D)->data ]) [3 S16 A128])

simplify_replace_fn_rtx called, x =
(reg/f:DI 75 [ array_3(D)->data ])

simplify_replace_fn_rtx called, x =
(expr_list:REG_DEP_TRUE (reg:TF 76)
    (nil))

simplify_replace_fn_rtx called, x =
(reg:TF 76)

gcc dies in "case 'e':", recursing with (nil) from:

(expr_list:REG_DEP_TRUE (reg:TF 76)
    (nil))

The fix is then trivial, like [no whitespace diff]:

--cut here--
Index: simplify-rtx.c
===================================================================
--- simplify-rtx.c      (revision 154088)
+++ simplify-rtx.c      (working copy)
@@ -489,6 +489,8 @@ simplify_replace_fn_rtx (rtx x, const_rt
        break;

       case 'e':
+       if (XEXP (x, i))
+         {
        op = simplify_replace_fn_rtx (XEXP (x, i), old_rtx, fn, data);
        if (op != XEXP (x, i))
          {
@@ -496,6 +498,7 @@ simplify_replace_fn_rtx (rtx x, const_rt
              newx = shallow_copy_rtx (x);
            XEXP (newx, i) = op;
          }
+         }
        break;
       }
   return newx;
--cut here--


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |ubizjak at gmail dot com
                   |dot org                     |
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2009-11-11 10:01:06         |2009-11-11 10:37:52
               date|                            |


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

Reply via email to