diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2016-05-23 19:24:22 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2016-05-23 19:24:22 +0000 |
commit | d6c9a06fcfc524fef362795cc40dbdffe1ca8b6c (patch) | |
tree | 180adbdfd15a70bd3ab894a8263ff295be84efda | |
parent | 396a1d10b3822a6da4794309a28ce3b1ea309325 (diff) | |
download | gcc-d6c9a06fcfc524fef362795cc40dbdffe1ca8b6c.zip gcc-d6c9a06fcfc524fef362795cc40dbdffe1ca8b6c.tar.gz gcc-d6c9a06fcfc524fef362795cc40dbdffe1ca8b6c.tar.bz2 |
re PR c++/69095 (internal compiler error: in dependent_type_p, at cp/pt.c:19399)
/cp
2016-05-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69095
* parser.c (cp_parser_default_argument): Call
check_for_bare_parameter_packs.
(cp_parser_late_parsing_default_args): Likewise.
/testsuite
2016-05-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69095
* g++.dg/cpp0x/variadic168.C: New.
From-SVN: r236610
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/parser.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/variadic168.C | 18 |
4 files changed, 31 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e6f4ac9..764754d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ 2016-05-23 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/69095 + * parser.c (cp_parser_initializer): Use check_for_bare_parameter_packs. + +2016-05-23 Paolo Carlini <paolo.carlini@oracle.com> + * pt.c (check_for_bare_parameter_packs): Improve error message location for expressions. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 076e7f3..a68a510 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -20800,6 +20800,9 @@ cp_parser_initializer (cp_parser* parser, bool* is_direct_init, init = error_mark_node; } + if (check_for_bare_parameter_packs (init)) + init = error_mark_node; + return init; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b4ca509..80b62ad 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2016-05-23 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/69095 + * g++.dg/cpp0x/variadic168.C: New. + +2016-05-23 Paolo Carlini <paolo.carlini@oracle.com> + * g++.dg/cpp0x/pr31445.C: Test column number too. * g++.dg/cpp0x/pr32253.C: Likewise. * g++.dg/cpp0x/variadic-ex13.C: Likewise. diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic168.C b/gcc/testsuite/g++.dg/cpp0x/variadic168.C new file mode 100644 index 0000000..202897e --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/variadic168.C @@ -0,0 +1,18 @@ +// PR c++/69095 +// { dg-do compile { target c++11 } } + +struct B1 { + template <typename Ret, typename... Args, unsigned = sizeof(Args)> // { dg-error "parameter packs not expanded" } + void insert(Ret); +}; + +struct B2 { + template <typename Ret, typename... Args> + void insert(Ret, unsigned = sizeof(Args)); // { dg-error "parameter packs not expanded" } +}; + +template <typename Ret, typename... Args, unsigned = sizeof(Args)> // { dg-error "parameter packs not expanded" } +void insert1(Ret); + +template <typename Ret, typename... Args> +void insert2(Ret, unsigned = sizeof(Args)); // { dg-error "parameter packs not expanded" } |