aboutsummaryrefslogtreecommitdiff
path: root/gcc/struct-equiv.c
diff options
context:
space:
mode:
authorJ"orn Rennecke <joern.rennecke@st.com>2005-12-14 14:18:36 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2005-12-14 14:18:36 +0000
commit5216df748ac5f68468f06e4cfded3c42d6c3b7c9 (patch)
tree160185165e5f212b116813093fbd1a9b3aa13bd9 /gcc/struct-equiv.c
parentee39680c060a370438e17105cbbe72fb26374d68 (diff)
downloadgcc-5216df748ac5f68468f06e4cfded3c42d6c3b7c9.zip
gcc-5216df748ac5f68468f06e4cfded3c42d6c3b7c9.tar.gz
gcc-5216df748ac5f68468f06e4cfded3c42d6c3b7c9.tar.bz2
struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for PARALLELs with a mode.
* struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for PARALLELs with a mode. From-SVN: r108511
Diffstat (limited to 'gcc/struct-equiv.c')
-rw-r--r--gcc/struct-equiv.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/struct-equiv.c b/gcc/struct-equiv.c
index 3e6ba5d..fc563b6 100644
--- a/gcc/struct-equiv.c
+++ b/gcc/struct-equiv.c
@@ -637,7 +637,10 @@ rtx_equiv_p (rtx *xp, rtx y, int rvalue, struct equiv_info *info)
return (rtx_equiv_p (&XEXP (x, 0), XEXP (y, 0), 0, info)
&& rtx_equiv_p (&XEXP (x, 0), XEXP (y, 0), 1, info));
case PARALLEL:
- gcc_assert (rvalue < 0);
+ /* If this is a top-level PATTERN PARALLEL, we expect the caller to
+ have handled the SET_DESTs. A complex or vector PARALLEL can be
+ identified by having a mode. */
+ gcc_assert (rvalue < 0 || GET_MODE (x) != VOIDmode);
break;
case LABEL_REF:
/* Check special tablejump match case. */