Straightforward change. Tested x86_64-pc-linux-gnu, applying to trunk.
commit c11146bdabc5961956adfe00bef8e60657c60fa6 Author: Jason Merrill <ja...@redhat.com> Date: Tue Mar 1 20:52:24 2016 -0500 PR c++/70036 * parser.c (cp_parser_requires_clause): Call check_for_bare_parameter_packs. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 53decdc..535052f 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -24206,6 +24206,8 @@ cp_parser_requires_clause (cp_parser *parser) ++processing_template_decl; tree expr = cp_parser_binary_expression (parser, false, false, PREC_NOT_OPERATOR, NULL); + if (check_for_bare_parameter_packs (expr)) + expr = error_mark_node; --processing_template_decl; return expr; } diff --git a/gcc/testsuite/g++.dg/concepts/variadic3.C b/gcc/testsuite/g++.dg/concepts/variadic3.C new file mode 100644 index 0000000..f980e99 --- /dev/null +++ b/gcc/testsuite/g++.dg/concepts/variadic3.C @@ -0,0 +1,8 @@ +// PR c++/70036 +// { dg-do compile { target c++14 } } +// { dg-options "-fconcepts" } + +template <class T> concept bool C = true; + +template <class... T> +void f(T...) requires C<T>; // { dg-error "parameter pack" }