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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-12-31
                 CC|                            |trippels at gcc dot gnu.org
     Ever confirmed|0                           |1
      Known to fail|                            |4.9.3, 5.3.0, 6.0

--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Confirmed. May be related to pr60153.

markus@x4 /tmp % cat test.ii
struct A {
  A(char *);
};
struct B {
  template <typename Ret, typename... Args, unsigned = sizeof(Args)>
  void insert(A, Ret);
};
void fun2() {
  B a1;
  a1.insert("", fun2);
}

markus@x4 /tmp % g++ -std=c++14 -c test.ii
test.ii: In substitution of ‘template<class Ret, class ... Args, unsigned int
<anonymous> > void B::insert(A, Ret) [with Ret = void (*)(); Args = {};
unsigned int <anonymous> = <missing>]’:
test.ii:10:21:   required from here
test.ii:5:62: internal compiler error: in dependent_type_p, at cp/pt.c:22376
   template <typename Ret, typename... Args, unsigned = sizeof(Args)>
                                                              ^

0x62ddb3 dependent_type_p(tree_node*)
        ../../gcc/gcc/cp/pt.c:22376
0x72851f cxx_sizeof_or_alignof_type(tree_node*, tree_code, bool)
        ../../gcc/gcc/cp/typeck.c:1569
0x649a9c tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
        ../../gcc/gcc/cp/pt.c:16121
0x63e3a8 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
        ../../gcc/gcc/cp/pt.c:15658
0x64f1cc tsubst_template_arg
        ../../gcc/gcc/cp/pt.c:10302
0x668db2 type_unification_real
        ../../gcc/gcc/cp/pt.c:18346
0x675dcf fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node*
const*, unsigned int, tree_node*, unification_kind_t, int, bool, bool)
        ../../gcc/gcc/cp/pt.c:17611
0x5dfc6c add_template_candidate_real
        ../../gcc/gcc/cp/call.c:3059
0x5e06bc add_template_candidate
        ../../gcc/gcc/cp/call.c:3160
0x5e06bc add_candidates
        ../../gcc/gcc/cp/call.c:5332
0x5e0f4d build_new_method_call_1
        ../../gcc/gcc/cp/call.c:8261
0x5e0f4d build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>**, tree_node*, int, tree_node**, int)
        ../../gcc/gcc/cp/call.c:8457
0x6f3eeb cp_parser_postfix_expression
        ../../gcc/gcc/cp/parser.c:6851
0x6fd414 cp_parser_unary_expression
        ../../gcc/gcc/cp/parser.c:7954
0x6fdffb cp_parser_cast_expression
        ../../gcc/gcc/cp/parser.c:8631
0x6fe418 cp_parser_binary_expression
        ../../gcc/gcc/cp/parser.c:8732
0x6fee04 cp_parser_assignment_expression
        ../../gcc/gcc/cp/parser.c:9019
0x7022f9 cp_parser_expression
        ../../gcc/gcc/cp/parser.c:9188
0x702db0 cp_parser_expression_statement
        ../../gcc/gcc/cp/parser.c:10649
0x6ee334 cp_parser_statement
        ../../gcc/gcc/cp/parser.c:10500

Reply via email to