summaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-12-23 06:57:20 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1993-12-23 06:57:20 -0500
commita4e262bcecd21362015f8137eb096b0f7f7f8cd7 (patch)
tree78a601e71d36e12dbe52a929c5ed6a1143c65b0b /gcc/cse.c
parent4e6ee2672ef66ce3035f7b67899295c0efcf2e79 (diff)
downloadgcc-a4e262bcecd21362015f8137eb096b0f7f7f8cd7.tar.gz
(delete_reg_equiv): Don't reference elements of REG_{NEXT,PREV}_EQV
that are not defined. From-SVN: r6276
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index ea71b12873c..d9bc7d4a445 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -867,14 +867,16 @@ static void
delete_reg_equiv (reg)
register int reg;
{
- register int n = reg_next_eqv[reg];
- register int p = reg_prev_eqv[reg];
register int q = reg_qty[reg];
+ register int p, n;
- /* If invalid, do nothing. N and P above are undefined in that case. */
+ /* If invalid, do nothing. */
if (q == reg)
return;
+ p = reg_prev_eqv[reg];
+ n = reg_next_eqv[reg];
+
if (n != -1)
reg_prev_eqv[n] = p;
else