On Tue, 25 Oct 2011 14:49:09 +0200
Eric Botcazou <ebotca...@adacore.com> wrote:
> These labels are on the nonlocal_goto_handler_labels chain. You
> presumably just need to apply the same treatment to them in
> set_initial_label_offsets as the one applied to forced labels.
> OK for the adjusted patch if it works, mainline and 4.6 branch once
> it reopens. Please mention PR rtl-optimization/47918 in the ChangeLog.
Thanks -- I've committed this (much cleaner) version to mainline,
after re-testing. I'll see about testing it on 4.6 also.
Cheers,
Julian
Index: gcc/ChangeLog
===================================================================
--- gcc/ChangeLog (revision 180610)
+++ gcc/ChangeLog (working copy)
@@ -1,3 +1,10 @@
+2011-10-28 Julian Brown <jul...@codesourcery.com>
+
+ PR rtl-optimization/47918
+
+ * reload1.c (set_initial_label_offsets): Use initial offsets
+ for labels on the nonlocal_goto_handler_labels chain.
+
2011-10-28 Iain Sandoe <ia...@gcc.gnu.org>
* config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
Index: gcc/reload1.c
===================================================================
--- gcc/reload1.c (revision 180610)
+++ gcc/reload1.c (working copy)
@@ -3918,6 +3918,10 @@ set_initial_label_offsets (void)
if (XEXP (x, 0))
set_label_offsets (XEXP (x, 0), NULL_RTX, 1);
+ for (x = nonlocal_goto_handler_labels; x; x = XEXP (x, 1))
+ if (XEXP (x, 0))
+ set_label_offsets (XEXP (x, 0), NULL_RTX, 1);
+
for_each_eh_label (set_initial_eh_label_offset);
}