Tested in the same way as the aarch-common.c patch. OK to install?
Thanks,
Richard
gcc/
* config/arm/arm.c (arm_note_pic_base): Delete.
(arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
Index: gcc/config/arm/arm.c
===================================================================
--- gcc/config/arm/arm.c 2014-11-05 11:48:55.030053470 +0000
+++ gcc/config/arm/arm.c 2014-11-05 11:48:57.406073646 +0000
@@ -13157,16 +13157,6 @@ tls_mentioned_p (rtx x)
/* Must not copy any rtx that uses a pc-relative address. */
-static int
-arm_note_pic_base (rtx *x, void *date ATTRIBUTE_UNUSED)
-{
- if (GET_CODE (*x) == UNSPEC
- && (XINT (*x, 1) == UNSPEC_PIC_BASE
- || XINT (*x, 1) == UNSPEC_PIC_UNIFIED))
- return 1;
- return 0;
-}
-
static bool
arm_cannot_copy_insn_p (rtx_insn *insn)
{
@@ -13175,7 +13165,16 @@ arm_cannot_copy_insn_p (rtx_insn *insn)
if (recog_memoized (insn) == CODE_FOR_tlscall)
return true;
- return for_each_rtx (&PATTERN (insn), arm_note_pic_base, NULL);
+ subrtx_iterator::array_type array;
+ FOR_EACH_SUBRTX (iter, array, PATTERN (insn), ALL)
+ {
+ const_rtx x = *iter;
+ if (GET_CODE (x) == UNSPEC
+ && (XINT (x, 1) == UNSPEC_PIC_BASE
+ || XINT (x, 1) == UNSPEC_PIC_UNIFIED))
+ return true;
+ }
+ return false;
}
enum rtx_code