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

Reply via email to