http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49847
Summary: m68k gcj-4.6 NULL deref in fold_rtx (prev_insn_cc0 ==
NULL)
Product: gcc
Version: 4.6.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: java
AssignedTo: [email protected]
ReportedBy: [email protected]
Forwarding from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633754
Trying to bootstrap gcj-4.6 on Debian/m68k (gcj-4.4 and gcc-4.6 work fine).
Reproducible ICE trying to build the runtime library, after bootstrapping
passed:
/bin/bash ./libtool --tag=GCJ --mode=compile
/tmp/buildd/gcj-4.6-4.6.1/build/./gcc/gcj
-B/tmp/buildd/gcj-4.6-4.6.1/build/m68k-linux-gnu/m68040/libjava/
-B/tmp/buildd/gcj-4.6-4.6.1/build/m68k-linux-gnu/m68040/libjava/
-B/tmp/buildd/gcj-4.6-4.6.1/build/./gcc/ -B/usr/m68k-linux-gnu/bin/
-B/usr/m68k-linux-gnu/lib/ -isystem /usr/m68k-linux-gnu/include -isystem
/usr/m68k-linux-gnu/sys-include -m68040 -fclasspath=
-fbootclasspath=../../../../src/libjava/classpath/lib --encoding=UTF-8
-Wno-deprecated -fbootstrap-classes -g -O2 -m68040 -c -o java/util.lo
-fsource-filename=/tmp/buildd/gcj-4.6-4.6.1/build/m68k-linux-gnu/m68040/libjava/classpath/lib/classes
-MT java/util.lo -MD -MP -MF java/util.deps @java/util.list
/tmp/buildd/gcj-4.6-4.6.1/src/libjava/classpath/java/util/Random.java:427:0:
internal compiler error: Segmentation fault
This is still a cc0 architecture, as the problem is:
Program received signal SIGSEGV, Segmentation fault.
equiv_constant (x=0x0) at ../../src/gcc/cse.c:3812
3812 if (REG_P (x)
(gdb) bt
#0 equiv_constant (x=0x0) at ../../src/gcc/cse.c:3812
#1 0x804b0542 in fold_rtx (x=0xc83cb5f4, insn=0xc83cc1c0) at
../../src/gcc/cse.c:3274
#2 0x804b05fe in fold_rtx (x=0xc83c4f30, insn=0xc83cc1c0) at
../../src/gcc/cse.c:3279
#3 0x804b35ec in cse_insn (insn=0xc83cc1c0) at ../../src/gcc/cse.c:4511
[…]
(gdb) frame 1
#1 0x804b0542 in fold_rtx (x=0xc83cb5f4, insn=0xc83cc1c0) at
../../src/gcc/cse.c:3274
3274 const_arg = equiv_constant (folded_arg);
(gdb) list
3269
3270 #ifdef HAVE_cc0
3271 case CC0:
3272 folded_arg = prev_insn_cc0;
3273 mode_arg = prev_insn_cc0_mode;
3274 const_arg = equiv_constant (folded_arg);
3275 break;
3276 #endif
3277
3278 default:
(gdb) print folded_arg
$1 = (rtx) 0x0
(gdb) print prev_insn_cc0
$2 = (rtx) 0x0
(gdb) print prev_insn_cc0_mode
$3 = VOIDmode
More information in the linked bug report.