http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54029
Bug #: 54029 Summary: SH: Fix ICE in find_dead_or_set_registers Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: ch...@gcc.gnu.org Created attachment 27831 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27831 preprocessed file. Compiles with -O2 This is a SH regression on the 4.7 and trunk while building Webkit (pre-processed file size is about 2.2Mb A far branch to a return rtx produces an ICE in find_dead_or_set_registers at line resource.c:497: next = JUMP_LABEL (this_jump_insn); if (ANY_RETURN_P (next)) <- next is null next = NULL_RTX; Turns out that JUMP_LABEL was not set after gen_return in sh.c:gen_far_branch. Reproduce with a sh4-linux-g++ or sh-superh-elf-g++ 4.7.1 and above