http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52425
--- Comment #4 from Bernd Schmidt <bernds at gcc dot gnu.org> 2012-03-02 14:22:54 UTC --- For some reason I can never reproduce sparc bugs with cross compilers. The original testcase doesn't fail here; the reduced one fails but with a different error message, and it fails in instantiate_virtual_regs which is before any head-merging ever runs: sparcbug.i: In function ‘action_button_cb’: sparcbug.i:57:1: error: unrecognizable insn: (insn 7 6 8 3 (set (reg:SI 130) (lo_sum:SI (reg:SI 130) (unspec:SI [ (symbol_ref/f:DI ("*.LC0") [flags 0x2] <var_decl 0x7ffff6cd7f00 *.LC0>) ] 0))) sparcbug.i:49 -1 (nil)) Breakpoint 2, internal_error (gmsgid=0xd6093d "in %s, at %s:%d") at ../../trunk/gcc/diagnostic.c:839 839 { (gdb) bt #0 internal_error (gmsgid=0xd6093d "in %s, at %s:%d") at ../../trunk/gcc/diagnostic.c:839 #1 0x0000000000bcf7cc in fancy_abort (file=<optimized out>, line=2123, function=0xc99260 "extract_insn") at ../../trunk/gcc/diagnostic.c:899 #2 0x000000000081e8d3 in _fatal_insn (msgid=<optimized out>, insn=0x7ffff6bc5990, file=0xc9885b "../../trunk/gcc/recog.c", line=2123, function=0xc99260 "extract_insn") at ../../trunk/gcc/rtl-error.c:110 #3 0x000000000081e912 in _fatal_insn_not_found (insn=0xc99260, file=0xc9886b "recog.c", line=2123, function=0xa <Address 0xa out of bounds>) at ../../trunk/gcc/rtl-error.c:118 #4 0x00000000007ea2b4 in extract_insn (insn=0x7ffff6bc5990) at ../../trunk/gcc/recog.c:2123 #5 0x00000000006cfe1c in instantiate_virtual_regs_in_insn (insn=0x7ffff6bc5990) at ../../trunk/gcc/function.c:1555 #6 instantiate_virtual_regs () at ../../trunk/gcc/function.c:1911 Please post the actual command line that gets passed to cc1. Also, it would be helpful if you could load cc1 into a debugger and do the following at the crash site in output_addr_const: (gdb) p debug_rtx (x) and at some higher level, also use debug_rtx to print out the insn it's trying to print.