http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58648
Bug ID: 58648
Summary: [c++11] ICE with variadic template
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: reichelt at gcc dot gnu.org
The following valid code snippet (compiled with "-std=c++11") triggers an ICE
since GCC 4.4.0:
====================================================
template<int, typename...T, T...> int foo();
int i = foo<0>();
====================================================
bug.cc:3:16: internal compiler error: tree check: accessed elt 2 of tree_vec
with 1 elts in tsubst_pack_expansion, at cp/pt.c:9535
int i = foo<0>();
^
0xce3195 tree_vec_elt_check_failed(int, int, char const*, int, char const*)
../../gcc/gcc/tree.c:9361
0x5a9fad tree_vec_elt_check
../../gcc/gcc/tree.h:2799
0x5a9fad tsubst_pack_expansion
../../gcc/gcc/cp/pt.c:9535
0x5aac77 coerce_template_parameter_pack
../../gcc/gcc/cp/pt.c:6514
0x5aac77 coerce_template_parms
../../gcc/gcc/cp/pt.c:6776
0x5d1493 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:15301
0x53e9bc add_template_candidate_real
../../gcc/gcc/cp/call.c:2923
0x53a739 add_template_candidate
../../gcc/gcc/cp/call.c:3020
0x53a739 add_candidates
../../gcc/gcc/cp/call.c:5075
0x541867 perform_overload_resolution
../../gcc/gcc/cp/call.c:3816
0x5481da build_new_function_call(tree_node*, vec<tree_node*, va_gc,
vl_embed>**, bool, int)
../../gcc/gcc/cp/call.c:3893
0x6b4dce finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool,
bool, int)
../../gcc/gcc/cp/semantics.c:2257
0x6417e6 cp_parser_postfix_expression
../../gcc/gcc/cp/parser.c:6009
0x64412d cp_parser_unary_expression
../../gcc/gcc/cp/parser.c:7009
0x644cff cp_parser_binary_expression
../../gcc/gcc/cp/parser.c:7701
0x6451bf cp_parser_assignment_expression
../../gcc/gcc/cp/parser.c:7937
0x645616 cp_parser_assignment_expression
../../gcc/gcc/cp/parser.c:7987
0x645616 cp_parser_constant_expression
../../gcc/gcc/cp/parser.c:8197
0x6513be cp_parser_init_declarator
../../gcc/gcc/cp/parser.c:16530
0x65198f cp_parser_simple_declaration
../../gcc/gcc/cp/parser.c:10995
Please submit a full bug report, [etc.]