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

            Bug ID: 100282
           Summary: [11/12 Regression] ICE in dependent_type_p, at
                    cp/pt.c:26813
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

g++-11.0.1-alpha20210418 snapshot (g:b412ce8e961052e6becea3bc783a53e1d5feaa0f)
ICEs when compiling the following testcase, reduced from
test/SemaCXX/lambda-expressions.cpp from the clang 11.1.0 test suite:

template <typename... Ts>
void
local_class ()
{
  int { []{ struct ZZ : Ts {}; }... };
}

template // <>
void
local_class<int> ();

% g++-11.0.1 -c xhrah4q6.cpp
xhrah4q6.cpp: In instantiation of 'struct local_class<int>()::<lambda()>::ZZ':
xhrah4q6.cpp:5:29:   required from 'void local_class() [with Ts = {int}]'
xhrah4q6.cpp:10:19:   required from here
xhrah4q6.cpp:5:20: internal compiler error: in dependent_type_p, at
cp/pt.c:26813
    5 |   int { []{ struct ZZ : Ts {}; }... };
      |                    ^~
0x69d8fd dependent_type_p(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:26813
0x983e58 xref_basetypes(tree_node*, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/decl.c:15434
0xad9331 instantiate_class_template_1
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:11922
0xadadb2 instantiate_class_template(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:12287
0xb272e9 complete_type(tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/typeck.c:143
0xab048d tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:18737
0xab0af1 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:18238
0xab05df tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:18589
0xadbabe tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:18223
0xadbabe tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:19540
0xaa5284 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:20891
0xaadfd8 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:19198
0xaad864 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:18223
0xaad864 gen_elem_of_pack_expansion_instantiation
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:12562
0xaad864 tsubst_pack_expansion(tree_node*, tree_node*, int, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:13227
0xaa5be3 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:20735
0xaadfd8 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:19198
0xab038c tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:18268
0xab0af1 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:18238
0xab05df tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
       
/var/tmp/portage/sys-devel/gcc-11.0.1_alpha20210426/work/gcc-11-20210426/gcc/cp/pt.c:18589

Reply via email to