http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45074

Steven Bosscher <steven at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
          Component|target                      |middle-end

--- Comment #4 from Steven Bosscher <steven at gcc dot gnu.org> 2010-11-12 
13:57:14 UTC ---
Confirmed.

Configured with: "../gcc-4.5.0/configure --with-gmp=/home/stevenb
--with-mpfr=/home/stevenb --enable-languages=c,c++ --disable-checking
--disable-bootstrap --disable-nls --disable-libmudflap --disable-libssp
--target=mips-sde-elf --with-arch=mips32r2 --enable-interwork --enable-multilib
--with-stabs --disable-shared --disable-threads --with-newlib" on
ia64-unknown-linux-gnu.

Backtrace from GDB:

GNU C++ (GCC) version 4.5.0 (mips-sde-elf)
        compiled by GNU C version 4.4.4, GMP version 4.2.4, MPFR version 2.4.1,
MPC version 0.8
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 2773ee7be74a4d08fc337c378903fce1

Program received signal SIGSEGV, Segmentation fault.
0x4000000000738ef0 in emit_move_insn (x=0x0, y=0x20000000006173e0) at
../../gcc-4.5.0/gcc/expr.c:3427
3427      enum machine_mode mode = GET_MODE (x);
(gdb) bt
#0  0x4000000000738ef0 in emit_move_insn (x=0x0, y=0x20000000006173e0) at
../../gcc-4.5.0/gcc/expr.c:3427
#1  0x4000000000a89a10 in expand_absneg_bit (code=NEG, mode=DFmode,
op0=0x20000000006173a0, target=0x2000000000617000) at
../../gcc-4.5.0/gcc/optabs.c:2999
#2  0x4000000000a8b790 in expand_unop (mode=DFmode, unoptab=0x6000000000033bd0,
op0=0x20000000006173a0, target=0x2000000000617000, unsignedp=0)
    at ../../gcc-4.5.0/gcc/optabs.c:3217
#3  0x400000000075a8b0 in expand_expr_real_2 (ops=0x60000fffffe16258,
target=0x2000000000617000, tmode=DFmode, modifier=EXPAND_NORMAL) at
../../gcc-4.5.0/gcc/expr.c:7888
#4  0x4000000000767fd0 in expand_expr_real_1 (exp=0x200000000050c8d0,
target=0x2000000000617000, tmode=DFmode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc-4.5.0/gcc/expr.c:9650
#5  0x40000000007542d0 in expand_expr_real (exp=0x200000000050c8d0,
target=0x2000000000617000, tmode=DFmode, modifier=EXPAND_NORMAL, alt_rtl=0x0)
    at ../../gcc-4.5.0/gcc/expr.c:7187
#6  0x400000000075ddd0 in expand_expr_real_1 (exp=0x200000000063e5d0,
target=0x2000000000617000, tmode=DFmode, modifier=EXPAND_NORMAL,
alt_rtl=0x60000fffffe167f0)
    at ../../gcc-4.5.0/gcc/expr.c:8416
#7  0x40000000007543a0 in expand_expr_real (exp=0x200000000063e5d0,
target=0x2000000000617000, tmode=DFmode, modifier=EXPAND_NORMAL,
alt_rtl=0x60000fffffe167f0)
    at ../../gcc-4.5.0/gcc/expr.c:7195
#8  0x4000000000741b70 in store_expr (exp=0x200000000063e5d0,
target=0x2000000000617000, call_param_p=0, nontemporal=0 '\000') at
../../gcc-4.5.0/gcc/expr.c:4681
#9  0x400000000073fa90 in expand_assignment (to=0x20000000005281e0,
from=0x200000000063e5d0, nontemporal=0 '\000') at
../../gcc-4.5.0/gcc/expr.c:4465
#10 0x4000000000515e80 in expand_gimple_stmt_1 (stmt=0x20000000006440f0) at
../../gcc-4.5.0/gcc/cfgexpand.c:1872
#11 0x4000000000516890 in expand_gimple_stmt (stmt=0x20000000006440f0) at
../../gcc-4.5.0/gcc/cfgexpand.c:1978
#12 0x4000000000520ba0 in expand_gimple_basic_block (bb=0x200000000062c208) at
../../gcc-4.5.0/gcc/cfgexpand.c:3384
#13 0x4000000000524410 in gimple_expand_cfg () at
../../gcc-4.5.0/gcc/cfgexpand.c:3834
#14 0x4000000000ad2810 in execute_one_pass (pass=0x600000000002e6c8) at
../../gcc-4.5.0/gcc/passes.c:1568
#15 0x4000000000ad2d70 in execute_pass_list (pass=0x600000000002e6c8) at
../../gcc-4.5.0/gcc/passes.c:1623
#16 0x4000000000e9c1d0 in tree_rest_of_compilation (fndecl=0x2000000000625600)
at ../../gcc-4.5.0/gcc/tree-optimize.c:413
#17 0x400000000132b330 in cgraph_expand_function (node=0x2000000000650000) at
../../gcc-4.5.0/gcc/cgraphunit.c:1548
#18 0x400000000132ba70 in cgraph_expand_all_functions () at
../../gcc-4.5.0/gcc/cgraphunit.c:1627
#19 0x400000000132cfb0 in cgraph_optimize () at
../../gcc-4.5.0/gcc/cgraphunit.c:1875
#20 0x4000000001328570 in cgraph_finalize_compilation_unit () at
../../gcc-4.5.0/gcc/cgraphunit.c:1096
#21 0x400000000017a810 in cp_write_global_declarations () at
../../gcc-4.5.0/gcc/cp/decl2.c:3833
#22 0x4000000000d85ec0 in compile_file () at ../../gcc-4.5.0/gcc/toplev.c:1065
#23 0x4000000000d8d030 in do_compile () at ../../gcc-4.5.0/gcc/toplev.c:2417
#24 0x4000000000d8d330 in toplev_main (argc=26, argv=0x60000fffffe16fd8) at
../../gcc-4.5.0/gcc/toplev.c:2459
#25 0x400000000042b6f0 in main (argc=26, argv=0x60000fffffe16fd8) at
../../gcc-4.5.0/gcc/main.c:35
(gdb) l
3422       Return the last instruction emitted.  */
3423
3424    rtx
3425    emit_move_insn (rtx x, rtx y)
3426    {
3427      enum machine_mode mode = GET_MODE (x);
3428      rtx y_cst = NULL_RTX;
3429      rtx last_insn, set;
3430
3431      gcc_assert (mode != BLKmode
(gdb) up
#1  0x4000000000a89a10 in expand_absneg_bit (code=NEG, mode=DFmode,
op0=0x20000000006173a0, target=0x2000000000617000) at
../../gcc-4.5.0/gcc/optabs.c:2999
2999                    emit_move_insn (targ_piece, temp);
(gdb) l
2994                  temp = expand_binop (imode, code == ABS ? and_optab :
xor_optab,
2995                                       op0_piece,
2996                                       immed_double_const (lo, hi, imode),
2997                                       targ_piece, 1, OPTAB_LIB_WIDEN);
2998                  if (temp != targ_piece)
2999                    emit_move_insn (targ_piece, temp);
3000                }
3001              else
3002                emit_move_insn (targ_piece, op0_piece);
3003            }
(gdb) 

emit_move_insn() is being called with targ_piec == NULL

Reply via email to