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