diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/function.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c8b68a2..8b33726 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2014-08-27 David Malcolm <dmalcolm@redhat.com> + * function.c (contains): Introduce local "seq" for PATTERN (insn), + with a checked cast, in the region for where we know it's a + SEQUENCE. Use methods of rtx_sequence. + +2014-08-27 David Malcolm <dmalcolm@redhat.com> + * final.c (get_attr_length_1): Replace GET_CODE check with a dyn_cast, introducing local "seq" and the use of methods of rtx_sequence. diff --git a/gcc/function.c b/gcc/function.c index 25f1519..6023d69 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -5335,9 +5335,10 @@ contains (const_rtx insn, htab_t hash) if (NONJUMP_INSN_P (insn) && GET_CODE (PATTERN (insn)) == SEQUENCE) { + rtx_sequence *seq = as_a <rtx_sequence *> (PATTERN (insn)); int i; - for (i = XVECLEN (PATTERN (insn), 0) - 1; i >= 0; i--) - if (htab_find (hash, XVECEXP (PATTERN (insn), 0, i))) + for (i = seq->len () - 1; i >= 0; i--) + if (htab_find (hash, seq->element (i))) return true; return false; } |