https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67619
Bug ID: 67619 Summary: ICE at -O1 and above on x86_64-linux-gnu in int_mode_for_mode, at stor-layout.c:425 Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: su at cs dot ucdavis.edu Target Milestone: --- The following code causes an ICE when compiled with the current gcc trunk at -O1 and above on x86_64-linux-gnu in both 32-bit and 64-bit modes. It also affects 4.6.x through 5.2.x: (1) hang: 4.6.x and 4.7.x (2) ICE: 4.8.x to 5.2.x $ gcc-trunk -v Using built-in specs. COLLECT_GCC=gcc-trunk COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/6.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-trunk/configure --prefix=/usr/local/gcc-trunk --enable-languages=c,c++ --disable-werror --enable-multilib Thread model: posix gcc version 6.0.0 20150917 (experimental) [trunk revision 227862] (GCC) $ $ gcc-trunk -O0 -c small.c $ $ gcc-trunk -O1 -c small.c small.c: In function ‘foo’: small.c:9:3: internal compiler error: in int_mode_for_mode, at stor-layout.c:425 __builtin_eh_return (l, p); ^ 0xa9f22b int_mode_for_mode(machine_mode) ../../gcc-trunk/gcc/stor-layout.c:425 0x7ec67e emit_move_via_integer ../../gcc-trunk/gcc/expr.c:3143 0x7f8d9a emit_move_insn_1(rtx_def*, rtx_def*) ../../gcc-trunk/gcc/expr.c:3524 0x7f90d4 emit_move_insn(rtx_def*, rtx_def*) ../../gcc-trunk/gcc/expr.c:3592 0x7dcae2 copy_to_reg(rtx_def*) ../../gcc-trunk/gcc/explow.c:578 0x7d558f expand_builtin_eh_return(tree_node*, tree_node*) ../../gcc-trunk/gcc/except.c:2222 0x6d48f4 expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int) ../../gcc-trunk/gcc/builtins.c:6450 0x7f46d2 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc-trunk/gcc/expr.c:10473 0x6f54a3 expand_expr ../../gcc-trunk/gcc/expr.h:255 0x6f54a3 expand_call_stmt ../../gcc-trunk/gcc/cfgexpand.c:2647 0x6f54a3 expand_gimple_stmt_1 ../../gcc-trunk/gcc/cfgexpand.c:3534 0x6f54a3 expand_gimple_stmt ../../gcc-trunk/gcc/cfgexpand.c:3697 0x6f6b9a expand_gimple_basic_block ../../gcc-trunk/gcc/cfgexpand.c:5700 0x6fda46 execute ../../gcc-trunk/gcc/cfgexpand.c:6286 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. $ -------------------------------- void foo () { unsigned long l; void *p = 0; __builtin_unwind_init (); l = 0; __builtin_eh_return (l, p); }