https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109785
Bug ID: 109785 Summary: ICE in begin_maybe_infinite_loop Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: fiesh at zefix dot tv Target Milestone: --- This code: struct Trans_NS___cxx11_basic_string { constexpr Trans_NS___cxx11_basic_string(); }; struct Ltt { Trans_NS___cxx11_basic_string s; }; template <int _Nm> struct __array_traits { using _Type = Ltt[_Nm]; }; template <int _Nm> struct array { __array_traits<_Nm>::_Type _M_elems; }; template <typename EnumT> struct Map { Map() noexcept = default; array<enumSize(EnumT{})> values_{}; }; enum TechnologyType {}; constexpr int enumSize(TechnologyType) { return 4; } Map<TechnologyType> cuttingLtts_; leads to the following segmentation fault: % g++ -std=c++20 -c a.ii a.ii:15:34: internal compiler error: Segmentation fault 15 | array<enumSize(EnumT{})> values_{}; | ^~~~~~~ 0xde221f crash_signal /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/toplev.cc:314 0x7f5a43f28f5f ??? /usr/src/debug/sys-libs/glibc-2.36-r7/glibc-2.36/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0 0x887177 begin_maybe_infinite_loop /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/semantics.cc:693 0x8873a3 finish_for_cond(tree_node*, tree_node*, bool, unsigned short) /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/semantics.cc:1318 0x7765cb build_vec_init(tree_node*, tree_node*, tree_node*, bool, int, int, vec<tree_node*, va_gc, vl_embed>**) /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/init.cc:4854 0x8958be expand_vec_init_expr(tree_node*, tree_node*, int, vec<tree_node*, va_gc, vl_embed>**) /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/tree.cc:863 0x6fb4f7 cxx_eval_vec_init /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/constexpr.cc:5324 0x6fb4f7 cxx_eval_constant_expression /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/constexpr.cc:7610 0x7007b2 cxx_eval_outermost_constant_expr /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/constexpr.cc:8318 0x7049a7 maybe_constant_init_1 /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/constexpr.cc:8810 0x8be6ee massage_init_elt /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/typeck2.cc:1541 0x8bfe4b process_init_constructor_record /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/typeck2.cc:1813 0x8bfe4b process_init_constructor /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/typeck2.cc:2067 0x8bfe4b digest_init_r /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/typeck2.cc:1332 0x8c05dc digest_init_flags(tree_node*, tree_node*, int, int) /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/typeck2.cc:1378 0x8c05dc digest_nsdmi_init(tree_node*, tree_node*, int) /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/typeck2.cc:1464 0x77aff0 maybe_instantiate_nsdmi_init(tree_node*, int) /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/init.cc:635 0x77b450 get_nsdmi(tree_node*, bool, int) /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/init.cc:669 0x77c2e1 perform_member_init /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/init.cc:963 0x77c2e1 emit_mem_initializers(tree_node*) /usr/src/debug/sys-devel/gcc-13.1.0-r1/gcc-13.1.0/gcc/cp/init.cc:1609 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://bugs.gentoo.org/> for instructions. It's a regression from since it used to work before gcc 13.