From: Jason Merrill Date: Wed, 2 Mar 2016 02:55:23 +0000 (-0500) Subject: re PR c++/70036 ([concepts] ICE with a dependent sizeof in a concept) X-Git-Tag: basepoints/gcc-7~649 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c969cb8ca1ba78eb27de9922770ac397c829efc;p=thirdparty%2Fgcc.git re PR c++/70036 ([concepts] ICE with a dependent sizeof in a concept) PR c++/70036 * parser.c (cp_parser_requires_clause): Call check_for_bare_parameter_packs. From-SVN: r233886 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e8be35d1a736..f1d51cfa481a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2016-03-01 Jason Merrill + 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 53decdc16170..535052f97d01 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 000000000000..f980e991775b --- /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 concept bool C = true; + +template +void f(T...) requires C; // { dg-error "parameter pack" }