https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93986
Bug ID: 93986 Summary: [10 Regression] ICE in decompose, at wide-int.h:984 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-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-alpha20200223 snapshot (g:3133bed5d0327e8a9cd0a601b7ecdb9de4fc825d) ICEs when compiling the following testcase w/ -O1 -foptimize-strlen -ftree-slp-vectorize: int dd (void); void ya (int cm) { char s2[cm]; s2[cm-12] = s2[cm-11] = s2[cm-10] = s2[cm-9] = s2[cm-8] = s2[cm-7] = s2[cm-6] = s2[cm-5] = ' '; if (dd ()) __builtin_exit (0); } % gcc-10.0.1 -O1 -foptimize-strlen -ftree-slp-vectorize -c ch4gpdst.c during GIMPLE pass: strlen ch4gpdst.c: In function 'ya': ch4gpdst.c:5:1: internal compiler error: in decompose, at wide-int.h:984 5 | ya (int cm) | ^~ 0x5ee66a wi::int_traits<generic_wide_int<wide_int_storage> >::decompose(long*, unsigned int, generic_wide_int<wide_int_storage> const&) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/wide-int.h:984 0x8d1f74 wi::int_traits<generic_wide_int<wide_int_storage> >::decompose(long*, unsigned int, generic_wide_int<wide_int_storage> const&) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/wide-int.h:2456 0x8d1f74 wide_int_ref_storage<true, false>::wide_int_ref_storage<generic_wide_int<wide_int_storage> >(generic_wide_int<wide_int_storage> const&, unsigned int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/wide-int.h:1034 0x8d1f74 generic_wide_int<wide_int_ref_storage<true, false> >::generic_wide_int<generic_wide_int<wide_int_storage> >(generic_wide_int<wide_int_storage> const&, unsigned int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/wide-int.h:790 0x8d1f74 wi::binary_traits<generic_wide_int<wide_int_storage>, generic_wide_int<wide_int_storage>, wi::int_traits<generic_wide_int<wide_int_storage> >::precision_type, wi::int_traits<generic_wide_int<wide_int_storage> >::precision_type>::result_type wi::add<generic_wide_int<wide_int_storage>, generic_wide_int<wide_int_storage> >(generic_wide_int<wide_int_storage> const&, generic_wide_int<wide_int_storage> const&) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/wide-int.h:2425 0xf605cc generic_wide_int<wide_int_storage>& generic_wide_int<wide_int_storage>::operator+=<generic_wide_int<wide_int_storage> >(generic_wide_int<wide_int_storage> const&) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/wide-int.h:757 0xf605cc maybe_warn_overflow /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/tree-ssa-strlen.c:1977 0xf64ac8 maybe_warn_overflow /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/tree-ssa-strlen.c:2312 0xf64ac8 handle_store /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/tree-ssa-strlen.c:4976 0xf672a9 check_and_optimize_stmt /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/tree-ssa-strlen.c:5614 0xf672a9 strlen_dom_walker::before_dom_children(basic_block_def*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/tree-ssa-strlen.c:5791 0x1664567 dom_walker::walk(basic_block_def*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/domwalk.c:309 0xf5b75e printf_strlen_execute /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200223/work/gcc-10-20200223/gcc/tree-ssa-strlen.c:5857