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));
...

Reply via email to