This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/25919] New: Bootstrap failure with ICE in expand_compound_operation
- From: "kkojima at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Jan 2006 06:05:32 -0000
- Subject: [Bug target/25919] New: Bootstrap failure with ICE in expand_compound_operation
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The mainline compiler for sh4-*-linux-gnu fails during libgcc build:
/exp/ldroot/dodes/xsh-gcc-orig/./gcc/xgcc
-B/exp/ldroot/dodes/xsh-gcc-orig/./gcc/ -B/usr/local/sh4-unknown-linux-gnu/bin/
-B/usr/local/sh4-unknown-linux-gnu/lib/ -isystem
/usr/local/sh4-unknown-linux-gnu/include -isystem
/usr/local/sh4-unknown-linux-gnu/sys-include -O2 -O2 -g -O2 -DIN_GCC
-DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -isystem ./include -fpic
-DNO_FPSCR_VALUES -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
-I. -I. -I../../ORIG/trunk/gcc -I../../ORIG/trunk/gcc/.
-I../../ORIG/trunk/gcc/../include -I../../ORIG/trunk/gcc/../libcpp/include
-I../../ORIG/trunk/gcc/../libdecnumber -I../libdecnumber -DL_negvsi2
-fvisibility=hidden -DHIDE_EXPORTS -c ../../ORIG/trunk/gcc/libgcc2.c -o
libgcc/./_negvsi2.o
../../ORIG/trunk/gcc/libgcc2.c: In function '__negvsi2':
../../ORIG/trunk/gcc/libgcc2.c:174: internal compiler error: in
expand_compound_operation, at combine.c:5644
A reduced testcase is:
void foo (int a)
{
int w = -a;
if (a >= 0 ? w > 0 : w < 0)
bar ();
}
which fails to compile with -O. This ICEs also on sh-elf with -O -m4.
Binary search shows that it starts to fail after the patch:
r109961 | bonzini | 2006-01-19 23:54:57 +0900 (Thu, 19 Jan 2006) | 13 lines
2006-01-19 Paolo Bonzini <bonzini@gnu.org>
* combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
(expand_compound_operation, expand_field_assignment): Fail if the
bit lengths of an extract operation are out of range.
(make_extraction): Compute wanted_inner_mode based on the position
and length of the extraction. Make it extraction_mode for non-constant
positions, and do not modify offset in that case. When generating a
new MEM, use a mode that can hold the extraction while keeping correct
alignment. Remove code that supported MEMs wrapped by USEs.
(simplify_shift_const_1, force_to_mode) <case USE>: Remove.
--
Summary: Bootstrap failure with ICE in expand_compound_operation
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code, build, ice-checking
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kkojima at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: sh4-*-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25919