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/cse.c | |
parent | 4e6ee2672ef66ce3035f7b67899295c0efcf2e79 (diff) | |
download | gcc-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.c | 8 |
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 |