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

Reply via email to