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: unassig...@gcc.gnu.org
        ReportedBy: t...@mirbsd.org


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.

Reply via email to