https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94131
Bug ID: 94131 Summary: [10 Regression] ICE: tree check: expected integer_cst, have plus_expr in get_len, at tree.h:5927 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- gcc-10.0.1-alpha20200103 snapshot (g:9de42a8e995451cb13dceb3970ae23ff88240bff) ICEs when compiling the following testcase w/ -O1 -fno-tree-ccp -fno-tree-forwprop: void rv (int ur) { char yb[ur]; int qn = &yb[0]; __builtin_memset (yb, '\0', sizeof (yb)); __builtin_printf ("%s", qn ? &yb[0] : ""); } % gcc-10.0.1 -O1 -fno-tree-ccp -fno-tree-forwprop -w -c gsngdp2d.c during GIMPLE pass: strlen gsngdp2d.c: In function 'rv': gsngdp2d.c:2:1: internal compiler error: tree check: expected integer_cst, have plus_expr in get_len, at tree.h:5927 2 | rv (int ur) | ^~ 0x6fbc02 tree_check_failed(tree_node const*, char const*, int, char const*, ...) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/tree.c:9685 0x7c171f tree_check(tree_node const*, char const*, int, char const*, tree_code) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/tree.h:3534 0x7c171f wi::extended_tree<192>::get_len() const /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/tree.h:5927 0x7c171f wi::int_traits<generic_wide_int<wi::extended_tree<192> > >::decompose(long*, unsigned int, generic_wide_int<wi::extended_tree<192> > const&) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/wide-int.h:985 0x7c171f wide_int_ref_storage<true, false>::wide_int_ref_storage<generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, unsigned int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/wide-int.h:1034 0x7c171f generic_wide_int<wide_int_ref_storage<true, false> >::generic_wide_int<generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, unsigned int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/wide-int.h:790 0x7c171f bool wi::lts_p<generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, generic_wide_int<wi::extended_tree<192> > const&) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/wide-int.h:1902 0xf5ecd8 wi::binary_traits<generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> >, wi::int_traits<generic_wide_int<wi::extended_tree<192> > >::precision_type, wi::int_traits<generic_wide_int<wi::extended_tree<192> > >::precision_type>::signed_predicate_result operator< <generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, generic_wide_int<wi::extended_tree<192> > const&) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/wide-int.h:3248 0xf5ecd8 tree_int_cst_lt(tree_node const*, tree_node const*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/tree.h:6083 0xf5ecd8 get_range_strlen_dynamic /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/tree-ssa-strlen.c:1075 0xf5ef71 get_range_strlen_dynamic(tree_node*, c_strlen_data*, vr_values const*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/tree-ssa-strlen.c:1204 0x16aa577 get_string_length /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/gimple-ssa-sprintf.c:2029 0x16aa577 format_string /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/gimple-ssa-sprintf.c:2464 0x16ab003 format_directive /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/gimple-ssa-sprintf.c:3057 0x16ad869 compute_format_length /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/gimple-ssa-sprintf.c:4000 0x16ad869 handle_printf_call(gimple_stmt_iterator*, vr_values const*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/gimple-ssa-sprintf.c:4681 0xf674e3 strlen_check_and_optimize_call /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/tree-ssa-strlen.c:5420 0xf674e3 check_and_optimize_stmt /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/tree-ssa-strlen.c:5588 0xf674e3 strlen_dom_walker::before_dom_children(basic_block_def*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/tree-ssa-strlen.c:5821 0x1664337 dom_walker::walk(basic_block_def*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200308/work/gcc-10-20200308/gcc/domwalk.c:309