This is the mail archive of the gcc@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]

Re: Bootstrap failure on i686-linux-gnu with checking enabled


> 
> Current CVS mainline fails to bootstrap on i686-linux-gnu with:
> 
> ./xgcc -B./ -B/opt/gcc/3.2-devel/i686-pc-linux-gnu/bin/ -isystem /opt/gcc/3.2-devel/i686-pc-linux-gnu/include -isystem /opt/gcc/3.2-devel/i686-pc-linux-gnu/sys-include -O2  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I/cvs/gcc/gcc -I/cvs/gcc/gcc/. -I/cvs/gcc/gcc/config -I/cvs/gcc/gcc/../include  -DL_ffsdi2 -c /cvs/gcc/gcc/libgcc2.c -o libgcc/./_ffsdi2.o
> /cvs/gcc/gcc/libgcc2.c: In function `__ffsdi2':
> /cvs/gcc/gcc/libgcc2.c:349: RTL check: expected code `set' or `clobber', have `parallel' in bypass_conditional_jumps, at gcse.c:4549
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
> make[3]: *** [libgcc/./_ffsdi2.o] Error 1

I've checked in the attached patch as obvious to fix it.
I bootstraped with checking disabled by mistake, but it will solve at
least this problem.

Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/egcs/gcc/ChangeLog,v
retrieving revision 1.14383
diff -c -3 -p -r1.14383 ChangeLog
*** ChangeLog	2 Jun 2002 07:41:55 -0000	1.14383
--- ChangeLog	2 Jun 2002 10:13:21 -0000
***************
*** 1,3 ****
--- 1,7 ----
+ Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* gcse.c (bypass_conditional_jumps): Use single set to obtain set.
+ 
  2002-06-02  Richard Henderson  <rth@redhat.com>
  
  	* rtlanal.c (volatile_refs_p): Not automatically true for CALL.
Index: gcse.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/gcse.c,v
retrieving revision 1.193
diff -c -3 -p -r1.193 gcse.c
*** gcse.c	1 Jun 2002 20:03:08 -0000	1.193
--- gcse.c	2 Jun 2002 10:13:26 -0000
*************** bypass_conditional_jumps ()
*** 4541,4552 ****
  	       insn = NEXT_INSN (insn))
  	    if (GET_CODE (insn) == INSN)
  	      {
  		if (setcc)
  		  break;
  		if (!single_set (insn))
  		  break;
  
! 		dest = SET_DEST (PATTERN (insn));
  		if (GET_MODE_CLASS (GET_MODE (dest)) == MODE_CC)
  		  setcc = insn;
  #ifdef HAVE_cc0
--- 4541,4553 ----
  	       insn = NEXT_INSN (insn))
  	    if (GET_CODE (insn) == INSN)
  	      {
+ 		rtx set = single_set (insn);
  		if (setcc)
  		  break;
  		if (!single_set (insn))
  		  break;
  
! 		dest = SET_DEST (set);
  		if (GET_MODE_CLASS (GET_MODE (dest)) == MODE_CC)
  		  setcc = insn;
  #ifdef HAVE_cc0


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