https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119732
Bug ID: 119732 Summary: ICE (segfault) in reference_related_p(tree_node*, tree_node*) Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mkretz at gcc dot gnu.org Target Milestone: --- Test case (https://compiler-explorer.com/z/3613dKebx): Compile with -std=c++20 (or higher) -------------------- struct array {}; template <typename _Tp> static array convert_mask() { return {[]<int... _Js> { Impl0_convert_mask<_Tp>(_Js); }()...}; } void test() { convert_mask<array>(); } -------------------- # /home/mkretz/.local/gcc15/bin/g++ -std=c++26 -Wall -Wextra -Wno-psabi -Werror -O2 -g0 -fmax-errors=1 -march=core2 -S -o constexpr.core2.s constexpr.core2.ii constexpr.core2.ii: In instantiation of ‘array convert_mask() [with _Tp = array]’: constexpr.core2.ii:10:22: required from here 10 | convert_mask<array>(); | ~~~~~~~~~~~~~~~~~~~^~ constexpr.core2.ii:5:66: internal compiler error: Segmentation fault 5 | return {[]<int... _Js> { Impl0_convert_mask<_Tp>(_Js); }()...}; | ^ 0x22a56ff internal_error(char const*, ...) /home/mkretz/src/gcc-master/gcc/diagnostic-global-context.cc:517 0xfd55df crash_signal /home/mkretz/src/gcc-master/gcc/toplev.cc:322 0x70352804532f ??? ./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0 0x7eedfe reference_related_p(tree_node*, tree_node*) /home/mkretz/src/gcc-master/gcc/cp/call.cc:1675 0x88a805 reshape_init_r /home/mkretz/src/gcc-master/gcc/cp/decl.cc:7503 0x88b27b reshape_init(tree_node*, tree_node*, int) /home/mkretz/src/gcc-master/gcc/cp/decl.cc:7712 0x7fcb15 implicit_conversion /home/mkretz/src/gcc-master/gcc/cp/call.cc:2176 0x7fcfb9 perform_implicit_conversion_flags(tree_node*, tree_node*, int, int) /home/mkretz/src/gcc-master/gcc/cp/call.cc:14001 0xa1b394 check_return_expr(tree_node*, bool*, bool*) /home/mkretz/src/gcc-master/gcc/cp/typeck.cc:11476 0x9d8d72 finish_return_stmt(tree_node*) /home/mkretz/src/gcc-master/gcc/cp/semantics.cc:1585 0x9a407e tsubst_stmt /home/mkretz/src/gcc-master/gcc/cp/pt.cc:18875 0x9a3470 tsubst_stmt /home/mkretz/src/gcc-master/gcc/cp/pt.cc:18851 0x9a3470 tsubst_stmt /home/mkretz/src/gcc-master/gcc/cp/pt.cc:18865 0x9a417a tsubst_stmt /home/mkretz/src/gcc-master/gcc/cp/pt.cc:18851 0x9a417a tsubst_stmt /home/mkretz/src/gcc-master/gcc/cp/pt.cc:19230 0x9bfbf6 tsubst_stmt /home/mkretz/src/gcc-master/gcc/cp/pt.cc:27729 0x9bfbf6 instantiate_body /home/mkretz/src/gcc-master/gcc/cp/pt.cc:27729 0x9a2aad instantiate_decl(tree_node*, bool, bool) /home/mkretz/src/gcc-master/gcc/cp/pt.cc:28013 0x9c98c3 instantiate_pending_templates(int) /home/mkretz/src/gcc-master/gcc/cp/pt.cc:28090 0x89c725 c_parse_final_cleanups() /home/mkretz/src/gcc-master/gcc/cp/decl2.cc:5571