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