diff options
author | Jason Merrill <jason@redhat.com> | 2016-03-02 02:55:23 +0000 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2016-03-02 02:55:23 +0000 |
commit | 3b2ba9d78789dc15fcbab5b16b6b00d5cd1f9eb4 (patch) | |
tree | 3613cea7ded29fce0129ef37b6a6d2202592288e | |
parent | 3444bf3524ad9f1de16f4a2dd28e9926cb374c73 (diff) |
PR c++/70036
* parser.c (cp_parser_requires_clause): Call
check_for_bare_parameter_packs.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@233886 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/parser.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/concepts/variadic3.C | 8 |
3 files changed, 14 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e8be35d1a73..f1d51cfa481 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2016-03-01 Jason Merrill <jason@redhat.com> + PR c++/70036 + * parser.c (cp_parser_requires_clause): Call + check_for_bare_parameter_packs. + PR c++/51489 * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT the operands. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 53decdc1617..535052f97d0 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 00000000000..f980e991775 --- /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" } |