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

            Bug ID: 86988
           Summary: [7/9 Regression] ICE: tree check: expected
                    integer_cst, have var_decl in get_len, at tree.h:5563
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: jason at gcc dot gnu.org, msebor at gcc dot gnu.org
  Target Milestone: ---

Starting from r246662 we ICE on:

$ gcc /home/marxin/Programming/gcc/gcc/testsuite/g++.dg/ext/vla19.C
-Warray-bounds -O2 -c
during GIMPLE pass: vrp
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/ext/vla19.C: In function
‘void foo()’:
/home/marxin/Programming/gcc/gcc/testsuite/g++.dg/ext/vla19.C:8:1: internal
compiler error: tree check: expected integer_cst, have var_decl in get_len, at
tree.h:5563
8 | foo ()
  | ^~~
0x7870e4 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        /home/marxin/Programming/gcc/gcc/tree.c:9351
0x1153cd7 tree_check(tree_node const*, char const*, int, char const*,
tree_code)
        /home/marxin/Programming/gcc/gcc/tree.h:3376
0x1153cd7 wi::extended_tree<128>::get_len() const
        /home/marxin/Programming/gcc/gcc/tree.h:5563
0x1153cd7 wi::int_traits<generic_wide_int<wi::extended_tree<128> >
>::decompose(long*, unsigned int, generic_wide_int<wi::extended_tree<128> >
const&)
        /home/marxin/Programming/gcc/gcc/wide-int.h:964
0x1153cd7 wide_int_ref_storage<true,
false>::wide_int_ref_storage<generic_wide_int<wi::extended_tree<128> >
>(generic_wide_int<wi::extended_tree<128> > const&, unsigned int)
        /home/marxin/Programming/gcc/gcc/wide-int.h:1013
0x1153cd7 generic_wide_int<wide_int_ref_storage<true, false>
>::generic_wide_int<generic_wide_int<wi::extended_tree<128> >
>(generic_wide_int<wi::extended_tree<128> > const&, unsigned int)
        /home/marxin/Programming/gcc/gcc/wide-int.h:788
0x1153cd7 wi::binary_traits<generic_wide_int<wi::extended_tree<128> >, int,
wi::int_traits<generic_wide_int<wi::extended_tree<128> > >::precision_type,
wi::int_traits<int>::precision_type>::result_type
wi::add<generic_wide_int<wi::extended_tree<128> >,
int>(generic_wide_int<wi::extended_tree<128> > const&, int const&)
        /home/marxin/Programming/gcc/gcc/wide-int.h:2402
0x1146a85 wi::binary_traits<generic_wide_int<wi::extended_tree<128> >, int,
wi::int_traits<generic_wide_int<wi::extended_tree<128> > >::precision_type,
wi::int_traits<int>::precision_type>::operator_result
operator+<generic_wide_int<wi::extended_tree<128> >,
int>(generic_wide_int<wi::extended_tree<128> > const&, int const&)
        /home/marxin/Programming/gcc/gcc/wide-int.h:3273
0x1146a85 vrp_prop::check_mem_ref(unsigned int, tree_node*, bool)
        /home/marxin/Programming/gcc/gcc/tree-vrp.c:4690
0x1146cd9 check_array_bounds
        /home/marxin/Programming/gcc/gcc/tree-vrp.c:4897
0x117486b walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        /home/marxin/Programming/gcc/gcc/tree.c:11484
0xc6e850 walk_gimple_op(gimple*, tree_node* (*)(tree_node**, int*, void*),
walk_stmt_info*)
        /home/marxin/Programming/gcc/gcc/gimple-walk.c:202
0x113e5f1 check_array_bounds_dom_walker::before_dom_children(basic_block_def*)
        /home/marxin/Programming/gcc/gcc/tree-vrp.c:4950
0x1677567 dom_walker::walk(basic_block_def*)
        /home/marxin/Programming/gcc/gcc/domwalk.c:353
0x114235c vrp_prop::check_all_array_refs()
        /home/marxin/Programming/gcc/gcc/tree-vrp.c:4967
0x1143e52 vrp_prop::vrp_finalize(bool)
        /home/marxin/Programming/gcc/gcc/tree-vrp.c:6743
0x1151e6e execute_vrp
        /home/marxin/Programming/gcc/gcc/tree-vrp.c:6816
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

GCC 8 branch is fine, it again appeared in r263511.

Reply via email to