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.