* read-rtl.c (apply_subst_iterator): Handle define_insn_and_split. --- gcc/read-rtl.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/gcc/read-rtl.c b/gcc/read-rtl.c index d698dd4af4d..5957c29671a 100644 --- a/gcc/read-rtl.c +++ b/gcc/read-rtl.c @@ -275,9 +275,11 @@ apply_subst_iterator (rtx rt, unsigned int, int value) if (value == 1) return; gcc_assert (GET_CODE (rt) == DEFINE_INSN + || GET_CODE (rt) == DEFINE_INSN_AND_SPLIT || GET_CODE (rt) == DEFINE_EXPAND); - attrs_vec = XVEC (rt, 4); + int attrs = GET_CODE (rt) == DEFINE_INSN_AND_SPLIT ? 7 : 4; + attrs_vec = XVEC (rt, attrs); /* If we've already added attribute 'current_iterator_name', then we have nothing to do now. */ @@ -309,7 +311,7 @@ apply_subst_iterator (rtx rt, unsigned int, int value) GET_NUM_ELEM (attrs_vec) * sizeof (rtx)); new_attrs_vec->elem[GET_NUM_ELEM (attrs_vec)] = new_attr; } - XVEC (rt, 4) = new_attrs_vec; + XVEC (rt, attrs) = new_attrs_vec; } /* Map subst-attribute ATTR to subst iterator ITER. */ -- 2.17.2