This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Treat SEQUENCE specially in mark_jump_label.
- From: Bernd Schmidt <bernds_cb1 at t-online dot de>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 21 Mar 2007 00:47:19 +0100
- Subject: Treat SEQUENCE specially in mark_jump_label.
I've committed the following patch, which fixes a segfault in the
Blackfin compiler while building libgcc.
Recently, cfg_layout_finalize has started to call rebuild_jump_labels
which in turn calls mark_jump_label. The Blackfin reorg pass uses
cfg_layout, and mark_jump_label doesn't cope with the SEQUENCE insns we
generate.
Bootstrapped and regression tested on i686-linux. I get one additional
failure:
+FAIL: gcc.dg/noncompile/920923-1.c -O3 -g (test for excess errors)
which, from looking at the log, seems to be a dejagnu problem (the
compiler output appears truncated).
Bernd
--
This footer brought to you by insane German lawmakers.
Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen
Registergericht Muenchen HRB 40368
Geschaeftsfuehrer Thomas Wessel, Vincent Roche, Joseph E. McDonough
Index: ChangeLog
===================================================================
--- ChangeLog (revision 123084)
+++ ChangeLog (working copy)
@@ -1,3 +1,7 @@
+2007-03-20 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * jump.c (mark_jump_labels): Handle SEQUENCE specially.
+
2007-03-19 Paolo Bonzini <bonzini@gnu.org>
PR rtl-optimization/30907
Index: jump.c
===================================================================
--- jump.c (revision 123084)
+++ jump.c (working copy)
@@ -992,6 +992,12 @@ mark_jump_label (rtx x, rtx insn, int in
in_mem = 1;
break;
+ case SEQUENCE:
+ for (i = 0; i < XVECLEN (x, 0); i++)
+ mark_jump_label (PATTERN (XVECEXP (x, 0, i)),
+ XVECEXP (x, 0, i), 0);
+ return;
+
case SYMBOL_REF:
if (!in_mem)
return;