This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Bootstrap failure on i686-linux-gnu with checking enabled
- From: Jan Hubicka <jh at suse dot cz>
- To: Andreas Jaeger <aj at suse dot de>
- Cc: gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Sun, 2 Jun 2002 12:20:38 +0200
- Subject: Re: Bootstrap failure on i686-linux-gnu with checking enabled
- References: <u8adqeksw0.fsf@gromit.moeb>
>
> 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