aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtlanal.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-05-06 09:43:48 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-05-06 09:43:48 -0400
commit833c0b26acf93940a534d9633ef8d423c7ba3016 (patch)
treeab0226dc43b6aa7be7e0c4639fb71cc83e52e2ae /gcc/rtlanal.c
parent233fdd10bf1269158fb73889309ee2926af03ab0 (diff)
downloadgcc-833c0b26acf93940a534d9633ef8d423c7ba3016.zip
gcc-833c0b26acf93940a534d9633ef8d423c7ba3016.tar.gz
gcc-833c0b26acf93940a534d9633ef8d423c7ba3016.tar.bz2
(rtx_addr_varies_p): Scan operands of type `E'.
From-SVN: r11935
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r--gcc/rtlanal.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index c8433c5..47c2535 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -1,5 +1,5 @@
/* Analyze RTL for C-Compiler
- Copyright (C) 1987, 88, 91, 92, 93, 94, 1995 Free Software Foundation, Inc.
+ Copyright (C) 1987, 88, 9-5, 1996 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -177,8 +177,17 @@ rtx_addr_varies_p (x)
fmt = GET_RTX_FORMAT (code);
for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
if (fmt[i] == 'e')
- if (rtx_addr_varies_p (XEXP (x, i)))
- return 1;
+ {
+ if (rtx_addr_varies_p (XEXP (x, i)))
+ return 1;
+ }
+ else if (fmt[i] == 'E')
+ {
+ int j;
+ for (j = 0; j < XVECLEN (x, i); j++)
+ if (rtx_addr_varies_p (XVECEXP (x, i, j)))
+ return 1;
+ }
return 0;
}