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

Reply via email to