aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJulian Brown <julian@codesourcery.com>2011-10-28 10:48:32 +0000
committerJulian Brown <jules@gcc.gnu.org>2011-10-28 10:48:32 +0000
commitb27df4bbaf6b18a2ef60b585c6706f89b36affa1 (patch)
tree2c31b9489c5475b701e1793c1db54ecf7a0e7196 /gcc
parente0f19b55ae71acd195e1c439584c4b4fe5cbd89c (diff)
downloadgcc-b27df4bbaf6b18a2ef60b585c6706f89b36affa1.zip
gcc-b27df4bbaf6b18a2ef60b585c6706f89b36affa1.tar.gz
gcc-b27df4bbaf6b18a2ef60b585c6706f89b36affa1.tar.bz2
re PR rtl-optimization/47918 (noreturn discovery broke non local gotos on m68k and i386)
PR rtl-optimization/47918 * reload1.c (set_initial_label_offsets): Use initial offsets for labels on the nonlocal_goto_handler_labels chain. From-SVN: r180611
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/reload1.c4
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 06a4352..ae569a8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2011-10-28 Julian Brown <julian@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 <iains@gcc.gnu.org>
* config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 6070eaa..04a839e 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -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);
}