This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: GCC build failed for 3 targets with your patch on 2002-06-02T21:21:24Z.
- From: Jan Hubicka <jh at suse dot cz>
- To: gcc-regression at gcc dot gnu dot org
- Cc: jh at suse dot cz, neil at daikokuya dot demon dot co dot uk, gcc-patches at gcc dot gnu dot org
- Date: Mon, 3 Jun 2002 00:20:28 +0200
- Subject: Re: GCC build failed for 3 targets with your patch on 2002-06-02T21:21:24Z.
- References: <200206022210.g52MAMo27818@maat.sfbay.redhat.com>
> if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi
> /maat/heart/tbox/powerpc-eabisim/build/gcc/xgcc -B/maat/heart/tbox/powerpc-eabisim/build/gcc/ -B/maat/heart/tbox/objs/powerpc-eabisim/bin/ -B/maat/heart/tbox/objs/powerpc-eabisim/lib/ -isystem /maat/heart/tbox/objs/powerpc-eabisim/include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I/maat/heart/tbox/cvs-gcc/gcc/gcc -I/maat/heart/tbox/cvs-gcc/gcc/gcc/. -I/maat/heart/tbox/cvs-gcc/gcc/gcc/config -I/maat/heart/tbox/cvs-gcc/gcc/gcc/../include -mrelocatable-lib -mno-eabi -mstrict-align -DL_muldi3 -c /maat/heart/tbox/cvs-gcc/gcc/gcc/libgcc2.c -o libgcc/./_muldi3.o
> /maat/heart/tbox/cvs-gcc/gcc/gcc/libgcc2.c: In function `__muldi3':
> /maat/heart/tbox/cvs-gcc/gcc/gcc/libgcc2.c:367: Internal compiler error in final, at final.c:1909
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
> make[2]: *** [libgcc/./_muldi3.o] Error 1
> make[2]: Leaving directory `/maat/heart/tbox/powerpc-eabisim/build/gcc'
> make[1]: *** [stmp-multilib] Error 2
> make[1]: Leaving directory `/maat/heart/tbox/powerpc-eabisim/build/gcc'
Hi,
the problem is triggered by my stmt nesting patch, as I emit the notes
on demand very late in the game. I am commiting the patch as obvious.
I've also taken oppurtunity to kill unneeded STACK_REGS ifdef, as i386
now always compte addresses.
Mon Jun 3 00:18:20 CEST 2002 Jan Hubicka <jh@suse.cz>
* final.c (final): Allow notes to not have computed addresses;
kill no longer needed STACK_REGS ifdef.
Index: final.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/final.c,v
retrieving revision 1.258
diff -c -3 -p -r1.258 final.c
*** final.c 2 Jun 2002 21:09:15 -0000 1.258
--- final.c 2 Jun 2002 22:18:06 -0000
*************** final (first, file, optimize, prescan)
*** 1898,1913 ****
#ifdef HAVE_ATTR_length
if ((unsigned) INSN_UID (insn) >= INSN_ADDRESSES_SIZE ())
{
- #ifdef STACK_REGS
- /* Irritatingly, the reg-stack pass is creating new instructions
- and because of REG_DEAD note abuse it has to run after
- shorten_branches. Fake address of -1 then. */
- insn_current_address = -1;
- #else
/* This can be triggered by bugs elsewhere in the compiler if
new insns are created after init_insn_lengths is called. */
! abort ();
! #endif
}
else
insn_current_address = INSN_ADDRESSES (INSN_UID (insn));
--- 1898,1909 ----
#ifdef HAVE_ATTR_length
if ((unsigned) INSN_UID (insn) >= INSN_ADDRESSES_SIZE ())
{
/* This can be triggered by bugs elsewhere in the compiler if
new insns are created after init_insn_lengths is called. */
! if (GET_CODE (insn) == NOTE)
! insn_current_address = -1;
! else
! abort ();
}
else
insn_current_address = INSN_ADDRESSES (INSN_UID (insn));