https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116226
--- Comment #5 from Sam James <sjames at gcc dot gnu.org> --- (gdb) bt #0 internal_error(char const*, ...) (gmsgid=0x55555840fd48 "tree check: %s, have %s in %s, at %s:%d") at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/diagnostic-global-context.cc:486 #1 0x0000555556ab3d81 in tree_check_failed(tree_node const*, char const*, int, char const*, ...) (node=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/tree.cc:9001 #2 0x00005555558d2491 in tree_check(tree_node const*, char const*, int, char const*, tree_code) (__t=<optimized out>, __f=0x55555832d940 "/var/tmp/portage/sys-devel/gcc-15.0.9999/work/gcc-15.0.9999/gcc/tree.h", __l=6509, __g=0x55555823138e "get_len", __c=INTEGER_CST) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/tree.h:3920 #3 wi::extended_tree<131072>::get_len() const (this=<optimized out>) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/tree.h:6509 #4 wi::int_traits<generic_wide_int<wi::extended_tree<131072> > >::decompose(long*, unsigned int, generic_wide_int<wi::extended_tree<131072> > const&) (precision=131072, x=...) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/wide-int.h:1050 #5 wide_int_ref_storage<true, false>::wide_int_ref_storage<generic_wide_int<wi::extended_tree<131072> > >(generic_wide_int<wi::extended_tree<131072> > const&, unsigned int) (this=<synthetic pointer>, x=..., precision=131072) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/wide-int.h:1099 #6 generic_wide_int<wide_int_ref_storage<true, false> >::generic_wide_int<generic_wide_int<wi::extended_tree<131072> > >(generic_wide_int<wi::extended_tree<131072> > const&, unsigned int) (this=<synthetic pointer>, x=..., precision=131072) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/wide-int.h:855 #7 bool wi::lts_p<generic_wide_int<wi::extended_tree<131072> >, generic_wide_int<wi::extended_tree<131072> > >(generic_wide_int<wi::extended_tree<131072> > const&, generic_wide_int<wi::extended_tree<131072> > const&) (x=..., y=...) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/wide-int.h:2296 #8 0x0000555557dfc868 in bool wi::les_p<generic_wide_int<wi::extended_tree<131072> >, generic_wide_int<wi::extended_tree<131072> > >(generic_wide_int<wi::extended_tree<131072> > const&, generic_wide_int<wi::extended_tree<131072> > const&) (x=..., y=...) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/wide-int.h:2364 #9 wi::binary_traits<generic_wide_int<wi::extended_tree<131072> >, generic_wide_int<wi::extended_tree<131072> >, wi::int_traits<generic_wide_int<wi::extended_tree<131072> > >::precision_type, wi::int_traits<generic_wide_int<wi::extended_tree<131072> > >::precision_type>::signed_predicate_result operator<=<generic_wide_int<wi::extended_tree<131072> >, generic_wide_int<wi::extended_tree<131072> > >(generic_wide_int<wi::extended_tree<131072> > const&, generic_wide_int<wi::extended_tree<131072> > const&) (x=..., y=...) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/wide-int.h:3812 #10 tree_int_cst_le(tree_node const*, tree_node const*) (t1=0x7ffff348d198, t2=<optimized out>) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/tree.h:6684 #11 0x0000555557ecf778 in check_out_of_bounds_and_warn (location=2147484371, ref=0x7ffff3cf1930, low_sub_org=0x7ffff39429d8, low_sub=0x7ffff348d198, up_sub=0x7ffff3f73560, up_bound=0x7ffff348d168, up_bound_p1=0x7ffff33c5cd8, vr=0x7fffffffd570, ignore_off_by_one=false, for_array_bound=true, out_of_bound=<synthetic pointer>) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/gimple-array-bounds.cc:298 #12 array_bounds_checker::check_array_ref(unsigned int, tree_node*, gimple*, bool) (this=<optimized out>, location=2147484371, ref=0x7ffff3cf1930, stmt=<optimized out>, ignore_off_by_one=false) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/gimple-array-bounds.cc:391 #13 0x0000555557eb28d1 in array_bounds_checker::check_array_bounds(tree_node**, int*, void*) (tp=<optimized out>, walk_subtree=0x7fffffffd974, data=<optimized out>) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/gimple-array-bounds.cc:811 #14 0x000055555735b89f in walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set<tree_node*, false, default_hash_traits<tree_node*> >*)) (tp=0x7ffff39470e8, func=<optimized out>, data=0x7fffffffda10, pset=<optimized out>, lh=0x0) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/tree.cc:11477 #15 0x00005555575451c0 in walk_gimple_op(gimple*, tree_node* (*)(tree_node**, int*, void*), walk_stmt_info*) (stmt=0x7ffff39470a0, callback_op=0x555557eb2730 <array_bounds_checker::check_array_bounds(tree_node**, int*, void*)>, wi=0x7fffffffda10) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/gimple-walk.cc:212 #16 0x0000555557eb26f8 in check_array_bounds_dom_walker::before_dom_children(basic_block_def*) (this=0x7fffffffdb30, bb=0x7ffff3930b40) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/gimple-array-bounds.cc:873 #17 0x0000555557512533 in dom_walker::walk(basic_block_def*) (this=0x7fffffffdb30, bb=0x7ffff3930b40) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/domwalk.cc:311 #18 0x00005555564347f1 in array_bounds_checker::check() (this=this@entry=0x7fffffffdb70) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/gimple-array-bounds.cc:887 #19 0x0000555556434770 in pass_array_bounds::execute(function*) (this=<optimized out>, fun=0x7ffff3cd86c0) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/gimple-array-bounds.cc:924 #20 0x000055555591180b in execute_one_pass(opt_pass*) (pass=0x555559227570) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/passes.cc:2647 #21 0x00005555574834fc in execute_pass_list_1 (pass=0x555559227570) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/passes.cc:2756 #22 0x0000555557483519 in execute_pass_list_1 (pass=0x555559226cf0) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/passes.cc:2757 #23 0x0000555557482eb9 in execute_pass_list(function*, opt_pass*) (fn=0x7ffff3cd86c0, pass=<optimized out>) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/passes.cc:2767 #24 0x00005555573fb771 in cgraph_node::expand() (this=0x7ffff3cda990) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/cgraphunit.cc:1845 #25 0x000055555737f086 in expand_all_functions () at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/cgraphunit.cc:2028 #26 symbol_table::compile() (this=0x7ffff7206000) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/cgraphunit.cc:2404 #27 0x0000555557c5c159 in symbol_table::finalize_compilation_unit() (this=0x7ffff7206000) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/cgraphunit.cc:2589 #28 0x0000555557c120b1 in compile_file () at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/toplev.cc:478 #29 0x0000555557bd8bea in do_compile () at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/toplev.cc:2170 #30 toplev::main(int, char**) (this=this@entry=0x7fffffffde66, argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/toplev.cc:2330 #31 0x0000555557bd7e5b in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/sys-devel/gcc-15.0.9999/gcc-15.0.9999/gcc/main.cc:39 (gdb)