This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/68372] [concepts] invalid use of pack expansion expression in member function template declaration
- From: "lucdanton at free dot fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 23 Aug 2016 06:30:49 +0000
- Subject: [Bug c++/68372] [concepts] invalid use of pack expansion expression in member function template declaration
- Auto-submitted: auto-generated
- References: <bug-68372-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68372
--- Comment #1 from lucdanton at free dot fr ---
On 7 trunk (rev. 239680) it looks like the program now triggers an ICE:
$ g++-trunk -std=c++1z -fconcepts main.cpp
main.cpp: In substitution of 'template<class ... X> requires C<X>... void
foo::bar(X ...) [with X = {}]':
main.cpp:18:16: required from here
main.cpp:11:10: internal compiler error: in tsubst_constraint, at
cp/constraint.cc:1957
void bar(X...)
^~~
0x764263 tsubst_constraint(tree_node*, tree_node*, int, tree_node*)
../../gcc/gcc/cp/constraint.cc:1957
0x764362 tsubst_constraint_info(tree_node*, tree_node*, int, tree_node*)
../../gcc/gcc/cp/constraint.cc:1919
0x661f65 tsubst_decl
../../gcc/gcc/cp/pt.c:11967
0x667834 tsubst(tree_node*, tree_node*, int, tree_node*)
../../gcc/gcc/cp/pt.c:12907
0x670290 instantiate_template_1
../../gcc/gcc/cp/pt.c:17558
0x670290 instantiate_template(tree_node*, tree_node*, int)
../../gcc/gcc/cp/pt.c:17609
0x67701a 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:17984
0x62a048 add_template_candidate_real
../../gcc/gcc/cp/call.c:3119
0x62a813 add_template_candidate
../../gcc/gcc/cp/call.c:3197
0x62a813 add_candidates
../../gcc/gcc/cp/call.c:5384
0x62afe5 build_new_method_call_1
../../gcc/gcc/cp/call.c:8421
0x62afe5 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:8620
0x6bb668 cp_parser_postfix_expression
../../gcc/gcc/cp/parser.c:6908
0x6b9832 cp_parser_unary_expression
../../gcc/gcc/cp/parser.c:8019
0x6c1787 cp_parser_cast_expression
../../gcc/gcc/cp/parser.c:8696
0x6c1d53 cp_parser_binary_expression
../../gcc/gcc/cp/parser.c:8797
0x6c2434 cp_parser_assignment_expression
../../gcc/gcc/cp/parser.c:9084
0x6c48aa cp_parser_expression
../../gcc/gcc/cp/parser.c:9253
0x6c4e8f cp_parser_expression_statement
../../gcc/gcc/cp/parser.c:10736
0x6d17d4 cp_parser_statement
../../gcc/gcc/cp/parser.c:10587