aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/function.c5
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;
}