flow.c (find_auto_inc): Verify that we've got a REG before peeking at its regno.
authorJeffrey A Law <law@cygnus.com>
Thu, 3 Aug 2000 07:16:39 +0000 (07:16 +0000)
committerJeff Law <law@gcc.gnu.org>
Thu, 3 Aug 2000 07:16:39 +0000 (01:16 -0600)
        * flow.c (find_auto_inc): Verify that we've got a REG before
        peeking at its regno.  Fail, don't abort if we can't find
        the increment of the desired register.

From-SVN: r35443

gcc/ChangeLog
gcc/flow.c

index 9965f9559b8f9a716fcff11079fc78e4eea378fb..2da5c604aa031572f5d7baed6dca5354d4511f73 100644 (file)
@@ -1,5 +1,9 @@
 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
 
+       * flow.c (find_auto_inc): Verify that we've got a REG before
+       peeking at its regno.  Fail, don't abort if we can't find
+       the increment of the desired register.
+
        * pa.md (shadd height reduction patterns/splitters): Remove.
 
 2000-08-02  Jim Wilson  <wilson@cygnus.com>
index 3b5539e83192137cc427fc043ee361ac0e0bc46a..0b92d48448ca0e804a2f03bccb35aa3901d0ae62 100644 (file)
@@ -5018,12 +5018,12 @@ find_auto_inc (pbi, x, insn)
   if (GET_CODE (y) != PLUS)
     return;
 
-  if (REGNO (XEXP (y, 0)) == REGNO (addr))
+  if (REG_P (XEXP (y, 0)) && REGNO (XEXP (y, 0)) == REGNO (addr))
     inc_val = XEXP (y, 1);
-  else if (REGNO (XEXP (y, 1)) == REGNO (addr))
+  else if (REG_P (XEXP (y, 1)) && REGNO (XEXP (y, 1)) == REGNO (addr))
     inc_val = XEXP (y, 0);
   else
-    abort ();
+    return;
 
   if (GET_CODE (inc_val) == CONST_INT)
     {