http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59243

            Bug ID: 59243
           Summary: [SH] Build fails during compiling libjava/interpret.cc
                    with segfault
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: build
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: kkojima at gcc dot gnu.org
                CC: olegendo at gcc dot gnu.org
            Target: sh*-*-*

Created attachment 31270
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31270&action=edit
A reduced test case

Build fails for sh4-unknown-linux-gnu during compiling libjava/interpret.cc
with segfault.  It looks sh_optimize_sett_clrt::find_last_ccreg_values
falls into infinite recursion.  Here is a gdb backtrace for the attached
reduced testcase with -O1:

Program received signal SIGSEGV, Segmentation fault.
reg_overlap_mentioned_p (x=0xb7c8bd50, in=0xb7d74270)
    at ../../ORIG/trunk/gcc/rtlanal.c:1427
1427          return refers_to_regno_p (regno, endregno, in, (rtx*) 0);
Missing separate debuginfos, use: debuginfo-install glibc-2.14.1-6.i686
(gdb) bt
#0  reg_overlap_mentioned_p (x=0xb7c8bd50, in=0xb7d74270)
    at ../../ORIG/trunk/gcc/rtlanal.c:1427
#1  0x087a6d6d in set_of_1 (x=0xb7d74270, pat=0xb7bf242c, data1=0xbc000058)
    at ../../ORIG/trunk/gcc/rtlanal.c:1001
#2  0x087a389e in set_of (pat=0xb7c8bd50, insn=0xb7f63460)
    at ../../ORIG/trunk/gcc/rtlanal.c:1013
#3  0x087a3e04 in reg_set_p (reg=0xb7c8bd50, insn=0xb7f63460)
    at ../../ORIG/trunk/gcc/rtlanal.c:871
#4  0x08aca612 in sh_optimize_sett_clrt::find_last_ccreg_values (
    this=0x90b0718, start_insn=0xb7f63460, bb=0xb7f5aa40, values_out=..., 
    prev_visited_bb=0xb7f5aa80)
    at ../../ORIG/trunk/gcc/config/sh/sh_optimize_sett_clrt.cc:323
#5  0x08aca91b in sh_optimize_sett_clrt::find_last_ccreg_values (
    this=0x90b0718, start_insn=0xb7add140, bb=0xb7f5aa80, values_out=..., 
    prev_visited_bb=0xb7b33f40)
    at ../../ORIG/trunk/gcc/config/sh/sh_optimize_sett_clrt.cc:383
#6  0x08aca91b in sh_optimize_sett_clrt::find_last_ccreg_values (
    this=0x90b0718, start_insn=0xb7b36050, bb=0xb7b33f40, values_out=..., 
    prev_visited_bb=0xb7e2cf00)
    at ../../ORIG/trunk/gcc/config/sh/sh_optimize_sett_clrt.cc:383
#7  0x08aca91b in sh_optimize_sett_clrt::find_last_ccreg_values (
    this=0x90b0718, start_insn=0xb7bc1f9c, bb=0xb7e2cf00, values_out=..., 
    prev_visited_bb=0xb7b33f40)
    at ../../ORIG/trunk/gcc/config/sh/sh_optimize_sett_clrt.cc:383
#8  0x08aca91b in sh_optimize_sett_clrt::find_last_ccreg_values (
    this=0x90b0718, start_insn=0xb7b36050, bb=0xb7b33f40, values_out=..., 
    prev_visited_bb=0xb7e2cf00)
    at ../../ORIG/trunk/gcc/config/sh/sh_optimize_sett_clrt.cc:383
#9  0x08aca91b in sh_optimize_sett_clrt::find_last_ccreg_values (
    this=0x90b0718, start_insn=0xb7bc1f9c, bb=0xb7e2cf00, values_out=..., 
    prev_visited_bb=0xb7b33f40)
    at ../../ORIG/trunk/gcc/config/sh/sh_optimize_sett_clrt.cc:383
#10 0x08aca91b in sh_optimize_sett_clrt::find_last_ccreg_values (
    this=0x90b0718, start_insn=0xb7b36050, bb=0xb7b33f40, values_out=..., 
    prev_visited_bb=0xb7e2cf00)
    at ../../ORIG/trunk/gcc/config/sh/sh_optimize_sett_clrt.cc:383

frame 6, 8 and 10 are equivalent.

Reply via email to