https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113620

Xi Ruoyao <xry111 at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |xry111 at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |ice-on-invalid-code
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2024-01-26

--- Comment #1 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
Confirmed.

t1.c:19:21: internal compiler error: tree check: accessed elt 2 of 'tree_vec'
with 1 elts in tsubst, at cp/pt.cc:16216
   19 |     DEF::TYP r=DEF::INIT;
      |                     ^~~~
0x910d44 tree_vec_elt_check_failed(int, int, char const*, int, char const*)
        ../../gcc/gcc/tree.cc:9153
0x7a8e83 tree_vec_elt_check(tree_node*, int, char const*, int, char const*)
        ../../gcc/gcc/tree.h:3865
0x7a8e83 tsubst(tree_node*, tree_node*, int, tree_node*)
        ../../gcc/gcc/cp/pt.cc:16216
0xc3ada0 tsubst_scope
        ../../gcc/gcc/cp/pt.cc:16857
0xc3ada0 tsubst_qualified_id
        ../../gcc/gcc/cp/pt.cc:17133
0xc153cd tsubst_expr(tree_node*, tree_node*, int, tree_node*)
        ../../gcc/gcc/cp/pt.cc:20199
0xb03627 maybe_instantiate_nsdmi_init(tree_node*, int)
        ../../gcc/gcc/cp/init.cc:624
0xb03b0a maybe_instantiate_nsdmi_init(tree_node*, int)
        ../../gcc/gcc/cp/init.cc:679
0xb03b0a get_nsdmi(tree_node*, bool, int)
        ../../gcc/gcc/cp/init.cc:656
0xb34ed1 walk_field_subobs
        ../../gcc/gcc/cp/method.cc:2466
0xb35576 walk_field_subobs
        ../../gcc/gcc/cp/method.cc:2390
0xb35576 synthesized_method_walk
        ../../gcc/gcc/cp/method.cc:2835
0xb35eed get_defaulted_eh_spec(tree_node*, int)
        ../../gcc/gcc/cp/method.cc:2877
0xc1a078 maybe_instantiate_noexcept(tree_node*, int)
        ../../gcc/gcc/cp/pt.cc:26655
0xc19ee6 maybe_instantiate_noexcept(tree_node*, int)
        ../../gcc/gcc/cp/pt.cc:26645
0xae729a mark_used(tree_node*, int)
        ../../gcc/gcc/cp/decl2.cc:5811
0xa1af3e build_over_call
        ../../gcc/gcc/cp/call.cc:10524
0xa183bf build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>**, tree_node*, int, tree_node**, int)
        ../../gcc/gcc/cp/call.cc:11796
0xa1962a build_special_member_call(tree_node*, tree_node*, vec<tree_node*,
va_gc, vl_embed>**, tree_node*, int, int)
        ../../gcc/gcc/cp/call.cc:11281
0xb07819 expand_default_init
        ../../gcc/gcc/cp/init.cc:2202

With -std=c++17 it's fine:

t1.c:19:5: error: need 'typename' before 'DEF::TYP' because 'DEF' is a
dependent scope
   19 |     DEF::TYP r=DEF::INIT;
      |     ^~~
      |     typename

Reply via email to