Compiler output: $ gcc -mno-sse testcase.c testcase.c: In function 'foo': testcase.c:3: error: SSE register return with SSE disabled gcc: Internal error: Segmentation fault (program cc1) Please submit a full bug report. See <http://bugs.gentoo.org/> for instructions.
(is the diagnostics correct?) ------ testcase.c ------ int foo(int i) { return (__float128)i; } ------------------------ Tested revisions: r158095 - crash 4.5 r158131 - crash 4.4 r158133 - crash 4.3.4, 4.2.4, 4.1.2 - OK Backtrace: #0 ix86_cannot_change_mode_class (from=TFmode, to=DImode, regclass=SSE_FIRST_REG) at /mnt/svn/gcc-4_5/gcc/config/i386/i386.c:25160 #1 0x0000000000776200 in simplify_subreg_regno (xregno=21, xmode=TFmode, offset=0, ymode=DImode) at /mnt/svn/gcc-4_5/gcc/rtlanal.c:3293 #2 0x00000000007b2bf1 in simplify_subreg (outermode=DImode, op=0x7ffff7fb5920, innermode=TFmode, byte=0) at /mnt/svn/gcc-4_5/gcc/simplify-rtx.c:5260 #3 0x00000000007b333e in simplify_gen_subreg (outermode=DImode, op=0x7ffff7fb5920, innermode=TFmode, byte=0) at /mnt/svn/gcc-4_5/gcc/simplify-rtx.c:5449 #4 0x00000000005e5c57 in operand_subword_force (op=0x7ffff7fb5920, offset=0, mode=TFmode) at /mnt/svn/gcc-4_5/gcc/emit-rtl.c:1412 #5 0x0000000000609e3f in emit_move_multi_word (mode=TFmode, x=0x7ffff5865fc0, y=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/expr.c:3342 #6 0x0000000000608af3 in emit_move_insn (x=0x7ffff5865fc0, y=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/expr.c:3472 #7 0x00000000005f07fb in copy_to_reg (x=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/explow.c:608 #8 0x00000000005e5cc0 in operand_subword_force (op=0x7ffff7fb5920, offset=0, mode=TFmode) at /mnt/svn/gcc-4_5/gcc/emit-rtl.c:1422 #9 0x0000000000609e3f in emit_move_multi_word (mode=TFmode, x=0x7ffff5865fa0, y=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/expr.c:3342 #10 0x0000000000608af3 in emit_move_insn (x=0x7ffff5865fa0, y=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/expr.c:3472 ... #110289 0x0000000000609e3f in emit_move_multi_word (mode=TFmode, x=0x7ffff7fb5960, y=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/expr.c:3342 #110290 0x0000000000608af3 in emit_move_insn (x=0x7ffff7fb5960, y=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/expr.c:3472 #110291 0x00000000005f07fb in copy_to_reg (x=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/explow.c:608 #110292 0x00000000005e5cc0 in operand_subword_force (op=0x7ffff7fb5920, offset=0, mode=TFmode) at /mnt/svn/gcc-4_5/gcc/emit-rtl.c:1422 #110293 0x0000000000609e3f in emit_move_multi_word (mode=TFmode, x=0x7ffff7fb5940, y=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/expr.c:3342 #110294 0x0000000000608af3 in emit_move_insn (x=0x7ffff7fb5940, y=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/expr.c:3472 #110295 0x00000000005f07fb in copy_to_reg (x=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/explow.c:608 #110296 0x00000000005e5cc0 in operand_subword_force (op=0x7ffff7fb5920, offset=0, mode=TFmode) at /mnt/svn/gcc-4_5/gcc/emit-rtl.c:1422 #110297 0x0000000000609e3f in emit_move_multi_word (mode=TFmode, x=0x7ffff7fb57c0, y=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/expr.c:3342 #110298 0x0000000000608af3 in emit_move_insn (x=0x7ffff7fb57c0, y=0x7ffff7fb5920) at /mnt/svn/gcc-4_5/gcc/expr.c:3472 #110299 0x000000000070f0f4 in emit_libcall_block (insns=0x7ffff7edba20, target=0x7ffff7fb57c0, result=0x7ffff7fb5920, equiv=0x7ffff7fa87e0) at /mnt/svn/gcc-4_5/gcc/optabs.c:3984 #110300 0x0000000000716900 in expand_float (to=0x7ffff7fb57c0, from=0x7ffff7fb6720, unsignedp=0) at /mnt/svn/gcc-4_5/gcc/optabs.c:5152 #110301 0x00000000006109e2 in expand_expr_real_2 (ops=0x7fffffffdaf0, target=0x7ffff7fb57c0, tmode=<value optimized out>, modifier=EXPAND_NORMAL) at /mnt/svn/gcc-4_5/gcc/expr.c:7879 #110302 0x000000000056c0e6 in expand_gimple_stmt_1 (stmt=0x7ffff7fb78c0) at /mnt/svn/gcc-4_5/gcc/cfgexpand.c:1905 #110303 expand_gimple_stmt (stmt=0x7ffff7fb78c0) at /mnt/svn/gcc-4_5/gcc/cfgexpand.c:1978 #110304 0x000000000056d831 in expand_gimple_basic_block (bb=0x7ffff7fab1a0) at /mnt/svn/gcc-4_5/gcc/cfgexpand.c:3384 #110305 0x0000000000571ac0 in gimple_expand_cfg () at /mnt/svn/gcc-4_5/gcc/cfgexpand.c:3834 #110306 0x0000000000726bab in execute_one_pass (pass=0x11687a0) at /mnt/svn/gcc-4_5/gcc/passes.c:1568 #110307 0x0000000000726e35 in execute_pass_list (pass=0x11687a0) at /mnt/svn/gcc-4_5/gcc/passes.c:1623 #110308 0x000000000081d2f5 in tree_rest_of_compilation (fndecl=0x7ffff7fad600) at /mnt/svn/gcc-4_5/gcc/tree-optimize.c:413 #110309 0x00000000009a18a1 in cgraph_expand_function (node=0x7ffff7edd4e0) at /mnt/svn/gcc-4_5/gcc/cgraphunit.c:1548 #110310 0x00000000009a45b0 in cgraph_output_in_order () at /mnt/svn/gcc-4_5/gcc/cgraphunit.c:1721 #110311 cgraph_optimize () at /mnt/svn/gcc-4_5/gcc/cgraphunit.c:1870 #110312 0x00000000009a47d5 in cgraph_finalize_compilation_unit () at /mnt/svn/gcc-4_5/gcc/cgraphunit.c:1096 #110313 0x00000000004b08d3 in c_write_global_declarations () at /mnt/svn/gcc-4_5/gcc/c-decl.c:9519 #110314 0x00000000007cbe35 in compile_file (argc=3, argv=0x7fffffffdf88) at /mnt/svn/gcc-4_5/gcc/toplev.c:1065 #110315 do_compile (argc=3, argv=0x7fffffffdf88) at /mnt/svn/gcc-4_5/gcc/toplev.c:2417 #110316 toplev_main (argc=3, argv=0x7fffffffdf88) at /mnt/svn/gcc-4_5/gcc/toplev.c:2459 #110317 0x00007ffff636ba3d in __libc_start_main () from /lib/libc.so.6 #110318 0x0000000000494d29 in _start () -- Summary: [4.4/4.5/4.6 Regression] ICE: SIGSEGV (too deep recursion) with -mno-sse and __float128 Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: zsojka at seznam dot cz GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: x86_64-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43701