diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-12-23 06:57:20 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-12-23 06:57:20 -0500 |
commit | a4e262bcecd21362015f8137eb096b0f7f7f8cd7 (patch) | |
tree | 78a601e71d36e12dbe52a929c5ed6a1143c65b0b /gcc | |
parent | 4e6ee2672ef66ce3035f7b67899295c0efcf2e79 (diff) | |
download | gcc-a4e262bcecd21362015f8137eb096b0f7f7f8cd7.zip gcc-a4e262bcecd21362015f8137eb096b0f7f7f8cd7.tar.gz gcc-a4e262bcecd21362015f8137eb096b0f7f7f8cd7.tar.bz2 |
(delete_reg_equiv): Don't reference elements of REG_{NEXT,PREV}_EQV
that are not defined.
From-SVN: r6276
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cse.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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 |