https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91945

            Bug ID: 91945
           Summary: [10 Regression] ICE: tree check: expected integer_cst,
                    have var_decl in get_len, at tree.h:5837
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Keywords: ice-checking, 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: ---

gfortran-10.0.0-alpha20190929 snapshot (r276272) ICEs when compiling
gcc/testsuite/gfortran.dg/result_in_spec_1.f90 w/ -O3 -fstack-arrays
-fno-guess-branch-probability:

% powerpc-e300c3-linux-gnu-gfortran-10.0.0-alpha20190929 -O3 -fstack-arrays
-fno-guess-branch-probability -c gcc/testsuite/gfortran.dg/result_in_spec_1.f90
during GIMPLE pass: strlen
gcc/testsuite/gfortran.dg/result_in_spec_1.f90:29:0:

   29 |   use test1
      | 
internal compiler error: tree check: expected integer_cst, have var_decl in
get_len, at tree.h:5837
0x6f1692 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/tree.c:9923
0x5968d0 tree_check(tree_node const*, char const*, int, char const*, tree_code)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/tree.h:3523
0x5968d0 wi::extended_tree<192>::get_len() const
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/tree.h:5837
0x5968d0 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/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/wide-int.h:983
0x5968d0 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/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/wide-int.h:1032
0x5968d0 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/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/wide-int.h:790
0x5968d0 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/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/wide-int.h:1899
0x5968d0 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/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/wide-int.h:3246
0x5968d0 tree_int_cst_lt(tree_node const*, tree_node const*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/tree.h:5993
0x5968d0 compute_objsize(tree_node*, int, tree_node**)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/builtins.c:3688
0x989cdd compute_objsize(tree_node*, int, tree_node**)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/builtins.c:3668
0x103529c handle_store
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/tree-ssa-strlen.c:4047
0x103529c check_and_optimize_stmt
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/tree-ssa-strlen.c:4661
0x103529c strlen_dom_walker::before_dom_children(basic_block_def*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/tree-ssa-strlen.c:4838
0x15a3a57 dom_walker::walk(basic_block_def*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/domwalk.c:309
0x102895e printf_strlen_execute
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.0_alpha20190929/work/gcc-10-20190929/gcc/tree-ssa-strlen.c:4904

(While the target here is powerpc, the ICE is not target-specific.)

Reply via email to