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]

Re: [patch] for PR 32773


On Mon, Jul 16, 2007 at 09:38:41PM +0200, Zdenek Dvorak wrote:
> Hello,
> 
> contrary to my belief, it turns out that cfg_layout_finalize does not
> ensure that exit block has at most one fallthru predecessor.  Keeping
> several fallthru edges leads to ICE or misscompilation.
> 
> The patch below makes us create a forwarder block in case exit has
> several fallthru predecessors.  Bootstrapped & regtested on i686.

   It breaks on m32c-unknown-elf:

/home/rask/build/gcc-m32c-unknown-elf/./gcc/xgcc -B/home/rask/build/gcc-m32c-unknown-elf/./gcc/ -nostdinc -B/home/rask/build/gcc-m32c-unknown-elf/m32c-unknown-elf/newlib/ -isystem /home/rask/build/gcc-m32c-unknown-elf/m32c-unknown-elf/newlib/targ-include -isystem /n/12/rask/src/all/newlib/libc/include -B/usr/local/m32c-unknown-elf/bin/ -B/usr/local/m32c-unknown-elf/lib/ -isystem /usr/local/m32c-unknown-elf/include -isystem /usr/local/m32c-unknown-elf/sys-include -L/home/rask/build/gcc-m32c-unknown-elf/./ld -B/home/rask/build/gcc-m32c-unknown-elf/m32c-unknown-elf/libgloss/m32c -L/home/rask/build/gcc-m32c-unknown-elf/m32c-unknown-elf/libgloss/m32c -L/home/rask/build/gcc-m32c-unknown-elf/m32c-unknown-elf/libgloss/libnosys -O2 -g -O2 -O2  -O2 -g -O2  -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include   -g  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc  -I. -I. -I../.././gcc -I/n/12/rask/src/all/libgcc -I/n/12/rask/src/all/libgcc/. -I/n/12/rask/src/all/libgcc/../gcc -I/n/12/rask/src/all/libgcc/../include
-DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep -DL_muldi3 -c /n/12/rask/src/all/libgcc/../gcc/libgcc2.c \

/n/12/rask/src/all/libgcc/../gcc/libgcc2.c: In function '__muldi3':
/n/12/rask/src/all/libgcc/../gcc/libgcc2.c:566: internal compiler error: in cfg_layout_redirect_edge_and_branch, at cfgrtl.c:2407

Try it in a unified tree with these configure flags:

--target m32c-unknown-elf --with-newlib --enable-sim --disable-gdb
--disable-nls --disable-multilib --enable-languages=c,c++
--enable-cxx-flags=-O2

Revision 126700 fails while revision 126699 works.

-- 
Rask Ingemann Lambertsen


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