https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88982
Bug ID: 88982 Summary: ICE in tsubst_pack_expansion, at cp/pt.c:12221 Product: gcc Version: 8.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-9.0.0-alpha20190120 snapshot (r268107) ICE when compiling the following testcase reduced from test/CXX/temp/temp.param/p15-cxx0x.cpp from the clang 7.0.1 testsuite: template<typename...Ts> struct A { template<template<typename, Ts = 0> class ...Cs, Cs<Ts> ...Vs> struct B { B() { } }; }; template<typename, int> using Int = int; template<typename, short> using Char = char; A<int, short>::B<Int, Char> b; % g++-9.0.0-alpha20190120 -c rtzrooh4.cpp rtzrooh4.cpp:10:27: internal compiler error: in tsubst_pack_expansion, at cp/pt.c:12221 10 | A<int, short>::B<Int, Char> b; | ^ 0x63d616 tsubst_pack_expansion(tree_node*, tree_node*, int, tree_node*) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/pt.c:12221 0x9ef5bb coerce_template_parameter_pack /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/pt.c:8121 0x9ef5bb coerce_template_parms /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/pt.c:8411 0x9f08a1 coerce_innermost_template_parms /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/pt.c:8619 0x9fcaaa lookup_template_class_1 /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/pt.c:9324 0x9fcaaa lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*, int, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/pt.c:9683 0xa29c8b finish_template_type(tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/semantics.c:3255 0x9a4aad cp_parser_template_id /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:16406 0x9a4c66 cp_parser_class_name /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:23127 0x9a8b42 cp_parser_qualifying_entity /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:6683 0x9a8b42 cp_parser_nested_name_specifier_opt /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:6369 0x99c9ab cp_parser_constructor_declarator_p /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:27312 0x99c9ab cp_parser_decl_specifier_seq /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:14038 0x99d2a4 cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:13354 0x9c2c10 cp_parser_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:13173 0x9c33a0 cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:4698 0x9c33a0 c_parse_file() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/cp/parser.c:41003 0xaccdab c_common_parse_file() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20190120/work/gcc-9-20190120/gcc/c-family/c-opts.c:1155