aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-06-28 00:41:41 +0000
committerRichard Stallman <rms@gnu.org>1993-06-28 00:41:41 +0000
commitf0722107141402b371e6041279b43e93b328562c (patch)
treebb4293818b94bd6d5a68ecda1bc3394b9e7a1cc9 /gcc
parentef5d30c934d3648c6298f79fdb83b19b6195aa65 (diff)
downloadgcc-f0722107141402b371e6041279b43e93b328562c.zip
gcc-f0722107141402b371e6041279b43e93b328562c.tar.gz
gcc-f0722107141402b371e6041279b43e93b328562c.tar.bz2
(copy_rtx_if_shared): Don't try to copy a 0-length vector.
From-SVN: r4774
Diffstat (limited to 'gcc')
-rw-r--r--gcc/emit-rtl.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index b63f0c8..29273b1 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -1418,12 +1418,12 @@ copy_rtx_if_shared (orig)
if (XVEC (x, i) != NULL)
{
register int j;
+ int len = XVECLEN (x, i);
- if (copied)
- XVEC (x, i) = gen_rtvec_v (XVECLEN (x, i), &XVECEXP (x, i, 0));
- for (j = 0; j < XVECLEN (x, i); j++)
- XVECEXP (x, i, j)
- = copy_rtx_if_shared (XVECEXP (x, i, j));
+ if (copied && len > 0)
+ XVEC (x, i) = gen_rtvec_v (len, &XVECEXP (x, i, 0));
+ for (j = 0; j < len; j++)
+ XVECEXP (x, i, j) = copy_rtx_if_shared (XVECEXP (x, i, j));
}
break;
}