From 5216df748ac5f68468f06e4cfded3c42d6c3b7c9 Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Wed, 14 Dec 2005 14:18:36 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/struct-equiv.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 282307950c3..1e656357f61 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-12-14 J"orn Rennecke + + * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for + PARALLELs with a mode. + 2005-12-14 Sebastian Pop * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of diff --git a/gcc/struct-equiv.c b/gcc/struct-equiv.c index 3e6ba5deaba..fc563b64fe7 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. */