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.)