https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107835
Bug ID: 107835 Summary: [13 Regression] ICE in build2, at tree.cc:5020 since r13-254-gdd3c7873a61019e9 Product: gcc Version: 13.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: sayle at gcc dot gnu.org Target Milestone: --- The following crashes: $ cat test-loop2.ii template <typename> struct __new_allocator; template <typename> struct allocator_traits; template <typename _Tp> struct allocator_traits<__new_allocator<_Tp>> { using pointer = _Tp *; }; struct __alloc_traits : allocator_traits<__new_allocator<int>> {}; template <typename _ForwardIterator, typename _Size, typename _Tp> _ForwardIterator __uninitialized_default_n_a(_ForwardIterator __first, _Size, _Tp) { unsigned __n; for (; __n; --__n, ++__first) ; return __first; } struct _Vector_impl_data { __alloc_traits::pointer _M_finish; _Vector_impl_data() : _M_finish() {} }; struct _Vector_base { ~_Vector_base(); _Vector_impl_data _M_impl; } resize___new_size; struct Trans_NS_std_vector : _Vector_base { void resize() { _M_impl._M_finish = __uninitialized_default_n_a(_M_impl._M_finish, resize___new_size, 0); } }; template <class> using vector = Trans_NS_std_vector; struct Platform { static void get(vector<Platform> *platforms) { platforms->resize(); } }; main() { vector<Platform> platformList; Platform::get(&platformList); } $ g++ test-loop2.ii -O2 -fwhole-program -c -w during GIMPLE pass: sccp test-loop2.ii: In function ‘int main()’: test-loop2.ii:33:1: internal compiler error: in build2, at tree.cc:5008 33 | main() { | ^~~~ 0x86bfa2 build2(tree_code, tree_node*, tree_node*, tree_node*) /home/marxin/Programming/gcc/gcc/tree.cc:5008 0xe0528f build2_loc /home/marxin/Programming/gcc/gcc/tree.h:4606 0xe0528f fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) /home/marxin/Programming/gcc/gcc/fold-const.cc:13820 0xe0526a fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) /home/marxin/Programming/gcc/gcc/fold-const.cc:13818 0x1fe6a65 chrec_apply(unsigned int, tree_node*, tree_node*) /home/marxin/Programming/gcc/gcc/tree-chrec.cc:632 0x1252b8b compute_overall_effect_of_inner_loop(loop*, tree_node*) /home/marxin/Programming/gcc/gcc/tree-scalar-evolution.cc:471 0x1256635 final_value_replacement_loop(loop*) /home/marxin/Programming/gcc/gcc/tree-scalar-evolution.cc:3759 0x1305915 execute /home/marxin/Programming/gcc/gcc/tree-ssa-loop.cc:411 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.