diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2008-03-01 03:35:50 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2008-03-01 03:35:50 +0000 |
commit | e065105898e9374964c728fdc3065bb9cc807560 (patch) | |
tree | 5d377970535eb0fb877c8fd9611b5f4a39cade28 /gcc | |
parent | d2b6be726e9fa1437b37f4ca9cd6c242ab295d40 (diff) | |
download | gcc-e065105898e9374964c728fdc3065bb9cc807560.zip gcc-e065105898e9374964c728fdc3065bb9cc807560.tar.gz gcc-e065105898e9374964c728fdc3065bb9cc807560.tar.bz2 |
* rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
From-SVN: r132794
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/rtlanal.c | 7 |
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e03adcc..7946075 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2008-03-01 Alexandre Oliva <aoliva@redhat.com> + * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly. + +2008-03-01 Alexandre Oliva <aoliva@redhat.com> + * tree-flow-inline.h (next_readonly_imm_use): Return NULL_USE_OPERAND_P after the end. diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index d9e60d3..804d6c8 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -2989,16 +2989,15 @@ loc_mentioned_in_p (rtx *loc, const_rtx in) fmt = GET_RTX_FORMAT (code); for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--) { - if (loc == &in->u.fld[i].rt_rtx) - return 1; if (fmt[i] == 'e') { - if (loc_mentioned_in_p (loc, XEXP (in, i))) + if (loc == &XEXP (in, i) || loc_mentioned_in_p (loc, XEXP (in, i))) return 1; } else if (fmt[i] == 'E') for (j = XVECLEN (in, i) - 1; j >= 0; j--) - if (loc_mentioned_in_p (loc, XVECEXP (in, i, j))) + if (loc == &XVECEXP (in, i, j) + || loc_mentioned_in_p (loc, XVECEXP (in, i, j))) return 1; } return 0; |