Fix C++17 template placeholder for template template parm.
commit4ca3a211e2b4513d08b5598eb63ea1f09f85f1e6
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Nov 2016 20:02:56 +0000 (9 20:02 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Nov 2016 20:02:56 +0000 (9 20:02 +0000)
treed5c30a428ac35d79bca820d0fbd2ad2ad9806fef
parentb1363399fad470a536bd8731be39c3fbfe4e6fad
Fix C++17 template placeholder for template template parm.

* parser.c (cp_parser_simple_type_specifier): Allow placeholder
for template template parameter.
(cp_parser_type_id_1): Improve diagnostic.
* decl.c (grokdeclarator): Handle class deduction diagnostics here.
* pt.c (splice_late_return_type): Not here.
(tsubst) [TEMPLATE_TYPE_PARM]: Substitute into placeholder template.
(do_class_deduction): Handle non-class templates.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242018 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/testsuite/g++.dg/cpp0x/variadic-ex1.C
gcc/testsuite/g++.dg/cpp1z/class-deduction21.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1z/class-deduction22.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1z/class-deduction23.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/ttp10.C