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]

[patch committed] Fix bootstrap failure on sh4-*-linux-gnu


Hi,

Bootstrap on sh4-unknown-linux-gnu fails during stage2
compilation of cp/class.c with

internal compiler error: in remove_insn, at emit-rtl.c:3601

It seems that sh.c:split_branches calls redirect_jump with
delete_unused argument set and redirect_jump hits the other
jump insn on which split_branches process is going, via
delete_related_insns.  The patch below is to workaround this.
With it, the bootstrap on sh4-unknown-linux-gnu is successful
again.  Applied on trunk.

Regards,
	kaz
--
2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (split_branches): Pass zero to	redirect_jump
	as 'delete_unused' argument.

--- ORIG/trunk/gcc/config/sh/sh.c	2008-03-01 09:22:33.000000000 +0900
+++ INTEST/trunk/gcc/config/sh/sh.c	2008-03-20 12:31:38.000000000 +0900
@@ -1,6 +1,6 @@
 /* Output routines for GCC for Renesas / SuperH SH.
    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+   2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
    Contributed by Steve Chamberlain (sac@cygnus.com).
    Improved by Jim Wilson (wilson@cygnus.com).
 
@@ -5283,7 +5283,7 @@ split_branches (rtx first)
 		    bp->insert_place = insn;
 		    bp->address = addr;
 		  }
-		ok = redirect_jump (insn, label, 1);
+		ok = redirect_jump (insn, label, 0);
 		gcc_assert (ok);
 	      }
 	    else


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