jump.c (eh_returnjump_p_1): Delete.
authorRichard Sandiford <rdsandiford@googlemail.com>
Thu, 28 Aug 2014 06:23:39 +0000 (06:23 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 28 Aug 2014 06:23:39 +0000 (06:23 +0000)
gcc/
* jump.c (eh_returnjump_p_1): Delete.
(eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
Remove handling of null rtxes.

From-SVN: r214644

gcc/ChangeLog
gcc/jump.c

index 32f519d0c2b89898a93f3f279550c69ae03b979c..1b3ab28e567744d67b9bc71be6c0a04f6d7f823d 100644 (file)
@@ -1,3 +1,9 @@
+2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * jump.c (eh_returnjump_p_1): Delete.
+       (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
+       Remove handling of null rtxes.
+
 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
 
        * jump.c: Include rtl-iter.h.
index 2a0bea795033359094b8ab71dadf9b4f33f5b383..05c8138db56476c1a42ed7b4163d8f85497f3918 100644 (file)
@@ -953,18 +953,17 @@ returnjump_p (rtx insn)
 
 /* Return true if INSN is a (possibly conditional) return insn.  */
 
-static int
-eh_returnjump_p_1 (rtx *loc, void *data ATTRIBUTE_UNUSED)
-{
-  return *loc && GET_CODE (*loc) == EH_RETURN;
-}
-
 int
 eh_returnjump_p (rtx insn)
 {
-  if (!JUMP_P (insn))
-    return 0;
-  return for_each_rtx (&PATTERN (insn), eh_returnjump_p_1, NULL);
+  if (JUMP_P (insn))
+    {
+      subrtx_iterator::array_type array;
+      FOR_EACH_SUBRTX (iter, array, PATTERN (insn), NONCONST)
+       if (GET_CODE (*iter) == EH_RETURN)
+         return true;
+    }
+  return false;
 }
 
 /* Return true if INSN is a jump that only transfers control and