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

            Bug ID: 79556
           Summary: [C++1z] ICE: in unify_one_argument, at cp/pt.c:18928
           Product: gcc
           Version: 7.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org
  Target Milestone: ---

Reported on
http://stackoverflow.com/questions/42260453/how-to-report-this-ice-for-gcc-trunk:

markus@x4 /tmp % cat foo.ii
template <auto> struct A;
template <auto...> struct B;
template <int N, auto Dim, auto... Dims> struct B<N, Dim, Dims...> {
  static auto a = A<B<Dims...>::value>::value;
};

markus@x4 /tmp % g++ -c -std=c++1z foo.ii
foo.ii:4:38: internal compiler error: in unify_one_argument, at cp/pt.c:18928
   static auto a = A<B<Dims...>::value>::value;
                                      ^
0x65de64 unify_one_argument
        /home/markus/gcc/gcc/cp/pt.c:18928
0x66b594 type_unification_real
        /home/markus/gcc/gcc/cp/pt.c:19083
0x630b2b do_auto_deduction(tree_node*, tree_node*, tree_node*, int,
auto_deduction_context, tree_node*, int)
        /home/markus/gcc/gcc/cp/pt.c:25250
0x6595a2 convert_template_argument
        /home/markus/gcc/gcc/cp/pt.c:7615
0x65ba40 coerce_template_parms
        /home/markus/gcc/gcc/cp/pt.c:8109
0x66286a lookup_template_class_1
        /home/markus/gcc/gcc/cp/pt.c:8633
0x66286a lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*,
int, int)
        /home/markus/gcc/gcc/cp/pt.c:8978
0x7794ff finish_template_type(tree_node*, tree_node*, int)
        /home/markus/gcc/gcc/cp/semantics.c:3151
0x70075c cp_parser_template_id
        /home/markus/gcc/gcc/cp/parser.c:15512
0x70098e cp_parser_class_name
        /home/markus/gcc/gcc/cp/parser.c:21964
0x6fd1fc cp_parser_qualifying_entity
        /home/markus/gcc/gcc/cp/parser.c:6284
0x6fd1fc cp_parser_nested_name_specifier_opt
        /home/markus/gcc/gcc/cp/parser.c:5970
0x7029a6 cp_parser_simple_type_specifier
        /home/markus/gcc/gcc/cp/parser.c:16837
0x6f56cb cp_parser_postfix_expression
        /home/markus/gcc/gcc/cp/parser.c:6697
0x6f679f cp_parser_unary_expression
        /home/markus/gcc/gcc/cp/parser.c:8124
0x6f774b cp_parser_cast_expression
        /home/markus/gcc/gcc/cp/parser.c:8801
0x6f7e4c cp_parser_binary_expression
        /home/markus/gcc/gcc/cp/parser.c:8902
0x6f8806 cp_parser_assignment_expression
        /home/markus/gcc/gcc/cp/parser.c:9189
0x6f8c2c cp_parser_constant_expression
        /home/markus/gcc/gcc/cp/parser.c:9459
0x6f9ba9 cp_parser_initializer_clause
        /home/markus/gcc/gcc/cp/parser.c:21586

Clang accepts the code.

Reply via email to