aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/flow.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9965f95..2da5c60 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
diff --git a/gcc/flow.c b/gcc/flow.c
index 3b5539e..0b92d48 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -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)
{