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.