https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91853
Bug ID: 91853 Summary: [10 Regression] ICE in gimplify_modify_expr, at gimplify.c:5902 since r275982 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: jamborm at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- Following is causing ICE: $ gcc /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/pr60647-1.c --param ipa-cp-value-list-size=0 -Os -fno-inline during IPA pass: inline In function ‘fn3.constprop.isra’: cc1: internal compiler error: in gimplify_modify_expr, at gimplify.c:5902 0x655a38 gimplify_modify_expr /home/marxin/Programming/gcc/gcc/gimplify.c:5902 0xb1d1f8 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) /home/marxin/Programming/gcc/gcc/gimplify.c:13136 0xb20cf6 gimplify_stmt(tree_node**, gimple**) /home/marxin/Programming/gcc/gcc/gimplify.c:6780 0xb2337f gimplify_and_add(tree_node*, gimple**) /home/marxin/Programming/gcc/gcc/gimplify.c:480 0xb2337f internal_get_tmp_var /home/marxin/Programming/gcc/gcc/gimplify.c:636 0xb2363a get_initialized_tmp_var(tree_node*, gimple**, gimple**, bool) /home/marxin/Programming/gcc/gcc/gimplify.c:667 0xb2363a prepare_gimple_addressable /home/marxin/Programming/gcc/gcc/gimplify.c:4278 0xb25a0b gimplify_addr_expr /home/marxin/Programming/gcc/gcc/gimplify.c:6144 0xb1df2a gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) /home/marxin/Programming/gcc/gcc/gimplify.c:13183 0xb3bf9d force_gimple_operand_1(tree_node*, gimple**, bool (*)(tree_node*), tree_node*) /home/marxin/Programming/gcc/gcc/gimplify-me.c:78 0xb3c04f force_gimple_operand_gsi_1(gimple_stmt_iterator*, tree_node*, bool (*)(tree_node*), tree_node*, bool, gsi_iterator_update) /home/marxin/Programming/gcc/gcc/gimplify-me.c:115 0xbd42a4 ipa_param_adjustments::modify_call(gcall*, vec<ipa_param_performed_split, va_gc, vl_embed>*, tree_node*, bool) /home/marxin/Programming/gcc/gcc/ipa-param-manipulation.c:724 0x983814 cgraph_edge::redirect_call_stmt_to_callee() /home/marxin/Programming/gcc/gcc/cgraph.c:1380 0x16bf764 inline_transform(cgraph_node*) /home/marxin/Programming/gcc/gcc/ipa-inline-transform.c:684 0xcdfd9a execute_one_ipa_transform_pass /home/marxin/Programming/gcc/gcc/passes.c:2231 0xcdfd9a execute_all_ipa_transforms(bool) /home/marxin/Programming/gcc/gcc/passes.c:2270 0x98c431 cgraph_node::expand() /home/marxin/Programming/gcc/gcc/cgraphunit.c:2187 0x98d40b expand_all_functions /home/marxin/Programming/gcc/gcc/cgraphunit.c:2332 0x98d40b symbol_table::compile() /home/marxin/Programming/gcc/gcc/cgraphunit.c:2688 0x98fc4c symbol_table::compile() /home/marxin/Programming/gcc/gcc/cgraphunit.c:2595 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. Similarly here: $ gcc /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/pr60647-2.c -fipa-sra -Og /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/pr60647-2.c: In function ‘bar’: /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/pr60647-2.c:21:4: warning: function called through a non-compatible type 21 | ((void (*) (void *, int, int)) foo) ((void *) 0, winInfo, 0); /* { dg-warning "function called through a non-compatible type" } */ | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ during IPA pass: inline In function ‘bar.isra’: cc1: internal compiler error: in gimplify_modify_expr, at gimplify.c:5902 0x655a38 gimplify_modify_expr /home/marxin/Programming/gcc/gcc/gimplify.c:5902 0xb1d1f8 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) /home/marxin/Programming/gcc/gcc/gimplify.c:13136 0xb20cf6 gimplify_stmt(tree_node**, gimple**) /home/marxin/Programming/gcc/gcc/gimplify.c:6780 0xb2337f gimplify_and_add(tree_node*, gimple**) /home/marxin/Programming/gcc/gcc/gimplify.c:480 0xb2337f internal_get_tmp_var /home/marxin/Programming/gcc/gcc/gimplify.c:636 0xb2363a get_initialized_tmp_var(tree_node*, gimple**, gimple**, bool) /home/marxin/Programming/gcc/gcc/gimplify.c:667 0xb2363a prepare_gimple_addressable /home/marxin/Programming/gcc/gcc/gimplify.c:4278 0xb25a0b gimplify_addr_expr /home/marxin/Programming/gcc/gcc/gimplify.c:6144 0xb1df2a gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*), int) /home/marxin/Programming/gcc/gcc/gimplify.c:13183 0xb3bf9d force_gimple_operand_1(tree_node*, gimple**, bool (*)(tree_node*), tree_node*) /home/marxin/Programming/gcc/gcc/gimplify-me.c:78 0xb3c04f force_gimple_operand_gsi_1(gimple_stmt_iterator*, tree_node*, bool (*)(tree_node*), tree_node*, bool, gsi_iterator_update) /home/marxin/Programming/gcc/gcc/gimplify-me.c:115 0xbd42a4 ipa_param_adjustments::modify_call(gcall*, vec<ipa_param_performed_split, va_gc, vl_embed>*, tree_node*, bool) /home/marxin/Programming/gcc/gcc/ipa-param-manipulation.c:724 0x983814 cgraph_edge::redirect_call_stmt_to_callee() /home/marxin/Programming/gcc/gcc/cgraph.c:1380 0x16bf764 inline_transform(cgraph_node*) /home/marxin/Programming/gcc/gcc/ipa-inline-transform.c:684 0xcdfd9a execute_one_ipa_transform_pass /home/marxin/Programming/gcc/gcc/passes.c:2231 0xcdfd9a execute_all_ipa_transforms(bool) /home/marxin/Programming/gcc/gcc/passes.c:2270 0x98c431 cgraph_node::expand() /home/marxin/Programming/gcc/gcc/cgraphunit.c:2187 0x98d40b expand_all_functions /home/marxin/Programming/gcc/gcc/cgraphunit.c:2332 0x98d40b symbol_table::compile() /home/marxin/Programming/gcc/gcc/cgraphunit.c:2688 0x98fc4c symbol_table::compile() /home/marxin/Programming/gcc/gcc/cgraphunit.c:2595