This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]