Building the attached file (extracted and reduced from the uclibc) with -O[1,2,3,s] -fPIC fails :
test.c: In function ‘_start’: test.c:14: error: unable to find a register to spill in class ‘R0_REGS’ test.c:14: error: this is the insn: (insn 16 28 17 0 (set (mem/c/i:SI (plus:SI (reg:SI 12 r12) (reg/f:SI 1 r1 [160])) [0 buf+0 S4 A32]) (reg/v:SI 0 r0 [ __sc0 ])) 179 {movsi_ie} (insn_list:REG_DEP_TRUE 13 (insn_list:REG_DEP_TRUE 11 (nil))) (expr_list:REG_DEAD (reg/f:SI 1 r1 [160]) (expr_list:REG_DEAD (reg/v:SI 0 r0 [ __sc0 ]) (nil)))) test.c:14: internal compiler error: in spill_failure -- Summary: SH4 ‘R0_REGS’ spill failure when using asm Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: chrbr at gcc dot gnu dot org ReportedBy: chrbr at gcc dot gnu dot org GCC target triplet: sh-superh-elf,sh4-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34807