[PATCH 1/2] apply_subst_iterator: Handle define_insn_and_split

H.J. Lu hjl.tools@gmail.com
Fri Oct 26 06:53:00 GMT 2018


	* 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



More information about the Gcc-patches mailing list