http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50251
vries at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2011-08-31 Ever Confirmed|0 |1 --- Comment #1 from vries at gcc dot gnu.org 2011-08-31 14:56:24 UTC --- reproduced first failure: ... /home/vries/local/i686/src/gcc-mainline/gcc/testsuite/gcc.c-torture/execute/20010209-1.c: In function 'main': /home/vries/local/i686/src/gcc-mainline/gcc/testsuite/gcc.c-torture/execute/20010209-1.c:21:1: internal compiler error: in print_reg, at config/i386/i386.c:13309 ... back-trace lto1 at failure: ... (gdb) bt #0 0xf7e6b4d4 in exit () from /lib32/libc.so.6 #1 0x08eab8af in diagnostic_action_after_output (context=0x965f240, diagnostic=0xffffd0f4) at /home/vries/local/i686/src/gcc-mainline/gcc/diagnostic.c:243 #2 0x08eac366 in diagnostic_report_diagnostic (context=0x965f240, diagnostic=0xffffd0f4) at /home/vries/local/i686/src/gcc-mainline/gcc/diagnostic.c:546 #3 0x08eac9c8 in internal_error (gmsgid=0x9358ca3 "in %s, at %s:%d") at /home/vries/local/i686/src/gcc-mainline/gcc/diagnostic.c:839 #4 0x08eaca90 in fancy_abort (file=0x91fdb24 "/home/vries/local/i686/src/gcc-mainline/gcc/config/i386/i386.c", line=13309, function=0x9213ccf "print_reg") at /home/vries/local/i686/src/gcc-mainline/gcc/diagnostic.c:893 #5 0x08a2d4ba in print_reg (x=0xf7d4d090, code=0, file=0x9692b68) at /home/vries/local/i686/src/gcc-mainline/gcc/config/i386/i386.c:13304 #6 0x08a2f44f in ix86_print_operand_address (file=0x9692b68, addr=0xf7e04cb4) at /home/vries/local/i686/src/gcc-mainline/gcc/config/i386/i386.c:14224 #7 0x083b6a8a in output_address (x=0xf7e04cb4) at /home/vries/local/i686/src/gcc-mainline/gcc/final.c:3540 #8 0x08a2ecd5 in ix86_print_operand (file=0x9692b68, x=0xf7e04cb4, code=0) at /home/vries/local/i686/src/gcc-mainline/gcc/config/i386/i386.c:14038 #9 0x083b6a2c in output_operand (x=0xf7e04cc0, code=0) at /home/vries/local/i686/src/gcc-mainline/gcc/final.c:3524 #10 0x083b6752 in output_asm_insn (templ=0x92d1e13 "mov{l}\t{%1, %0|%0, %1}", operands=0x962a4e0) at /home/vries/local/i686/src/gcc-mainline/gcc/final.c:3422 #11 0x083b56e8 in final_scan_insn (insn=0xf7d47f9c, file=0x9692b68, optimize_p=2, nopeepholes=0, seen=0xffffd5a0) at /home/vries/local/i686/src/gcc-mainline/gcc/final.c:2745 #12 0x083b3e39 in final (first=0xf7db4d20, file=0x9692b68, optimize_p=2) at /home/vries/local/i686/src/gcc-mainline/gcc/final.c:1786 #13 0x083b7b5f in rest_of_handle_final () at /home/vries/local/i686/src/gcc-mainline/gcc/final.c:4221 #14 0x08611dac in execute_one_pass (pass=0x9528da0) at /home/vries/local/i686/src/gcc-mainline/gcc/passes.c:2063 #15 0x08611f8d in execute_pass_list (pass=0x9528da0) at /home/vries/local/i686/src/gcc-mainline/gcc/passes.c:2118 #16 0x08611fb9 in execute_pass_list (pass=0x9529700) at /home/vries/local/i686/src/gcc-mainline/gcc/passes.c:2119 #17 0x08611fb9 in execute_pass_list (pass=0x95296c0) at /home/vries/local/i686/src/gcc-mainline/gcc/passes.c:2119 #18 0x087998b1 in tree_rest_of_compilation (fndecl=0xf7df2800) at /home/vries/local/i686/src/gcc-mainline/gcc/tree-optimize.c:420 #19 0x082b1573 in cgraph_expand_function (node=0xf7d493d8) at /home/vries/local/i686/src/gcc-mainline/gcc/cgraphunit.c:1797 #20 0x082b1727 in cgraph_expand_all_functions () at /home/vries/local/i686/src/gcc-mainline/gcc/cgraphunit.c:1856 #21 0x082b1e30 in cgraph_optimize () at /home/vries/local/i686/src/gcc-mainline/gcc/cgraphunit.c:2126 #22 0x081eec20 in lto_main () at /home/vries/local/i686/src/gcc-mainline/gcc/lto/lto.c:2803 #23 0x086ff03c in compile_file () at /home/vries/local/i686/src/gcc-mainline/gcc/toplev.c:548 #24 0x087010bf in do_compile () at /home/vries/local/i686/src/gcc-mainline/gcc/toplev.c:1886 #25 0x0870123d in toplev_main (argc=18, argv=0x9668ed8) at /home/vries/local/i686/src/gcc-mainline/gcc/toplev.c:1962 #26 0x081f17ab in main (argc=18, argv=0xffffd964) at /home/vries/local/i686/src/gcc-mainline/gcc/main.c:36 ... we're trying to print the following instruction using output template 'mov{l}\t{%1, %0|%0, %1}': ... (gdb) call debug_rtx (insn) (insn:TI 76 22 77 3 (set (reg:SI 2 cx [74]) (mem:SI (plus:SI (plus:SI (mult:SI (reg:SI 0 ax [orig:62 ivtmp.5 ] [62]) (const_int 4 [0x4])) (reg/f:SI 20 frame)) (const_int -36 [0xffffffffffffffdc])) [2 MEM[symbol: D.2280, index: ivtmp.5_9, step: 4, offset: 4294967292B]+0 S4 A32])) /home/vries/local/i686/src/gcc-mainline/gcc/testsuite/gcc.c-torture/execute/20010209-1.c:9 64 {*movsi_internal} (nil)) ... The compiler asserts when trying to print '(reg/f:SI 20 frame)' using print_reg at: ... 13299 print_reg (rtx x, int code, FILE *file) 13300 { 13301 const char *reg; 13302 bool duplicated = code == 'd' && TARGET_AVX; 13303 13304 gcc_assert (x == pc_rtx 13305 || (REGNO (x) != ARG_POINTER_REGNUM 13306 && REGNO (x) != FRAME_POINTER_REGNUM 13307 && REGNO (x) != FLAGS_REG 13308 && REGNO (x) != FPSR_REG 13309 && REGNO (x) != FPCR_REG)); ...