https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71485
Bug ID: 71485 Summary: g++ ICE on x86_64-linux-gnu in “gimplify_expr” Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: helloqirun at gmail dot com Target Milestone: --- The following invalid code causes an ICE when compiled with the current g++ trunk on x86_64-linux-gnu in 32-bit mode. It is a 7 regression. $ g++-trunk -v Using built-in specs. COLLECT_GCC=g++-trunk COLLECT_LTO_WRAPPER=/home/absozero/trunk/root-gcc/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc/configure --prefix=/home/absozero/trunk/root-gcc --enable-languages=c,c++ --disable-werror --enable-multilib Thread model: posix gcc version 7.0.0 20160608 (experimental) [trunk revision 237212] (GCC) $ g++-trunk -m32 abc.cc abc.cc:1:33: error: overflow in enumeration values at ‘e3’ enum { e1 = 0xffffffffffffffff, e3 } e = e3; ^~ abc.cc: In function ‘void __static_initialization_and_destruction_0(int, int)’: abc.cc:1:38: internal compiler error: in gimplify_expr, at gimplify.c:11097 enum { e1 = 0xffffffffffffffff, e3 } e = e3; ^ 0xaeaa5f gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:11097 0xafb5da gimplify_modify_expr ../../gcc/gcc/gimplify.c:4762 0xae893a gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:10349 0xaec9f8 gimplify_stmt(tree_node**, gimple**) ../../gcc/gcc/gimplify.c:5731 0xae81fa gimplify_cleanup_point_expr ../../gcc/gcc/gimplify.c:5507 0xae81fa gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:10714 0xaec9f8 gimplify_stmt(tree_node**, gimple**) ../../gcc/gcc/gimplify.c:5731 0xae7b63 gimplify_statement_list ../../gcc/gcc/gimplify.c:1549 0xae7b63 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:10766 0xaec9f8 gimplify_stmt(tree_node**, gimple**) ../../gcc/gcc/gimplify.c:5731 0xaf0c3d gimplify_cond_expr ../../gcc/gcc/gimplify.c:3286 0xae86d0 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:10305 0xaec9f8 gimplify_stmt(tree_node**, gimple**) ../../gcc/gcc/gimplify.c:5731 0xaf0c3d gimplify_cond_expr ../../gcc/gcc/gimplify.c:3286 0xae86d0 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) ../../gcc/gcc/gimplify.c:10305 0xaec9f8 gimplify_stmt(tree_node**, gimple**) ../../gcc/gcc/gimplify.c:5731 0xafcd84 gimplify_body(tree_node*, bool) ../../gcc/gcc/gimplify.c:11532 0xafd3c6 gimplify_function_tree(tree_node*) ../../gcc/gcc/gimplify.c:11688 0x969bf7 cgraph_node::analyze() ../../gcc/gcc/cgraphunit.c:625 0x96ceff analyze_functions ../../gcc/gcc/cgraphunit.c:1086 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. $ cat abc.cc enum { e1 = 0xffffffffffffffff, e3 } e = e3;