Allow partial specialization of variable templates.
commit806249b03daac52db84aa238dc350ca2904bf858
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 26 Nov 2014 21:58:38 +0000 (26 21:58 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 26 Nov 2014 21:58:38 +0000 (26 21:58 +0000)
tree5545278ced316fbb528d4e891ecfe7d300975c53
parentd781ea5c568a3e52ee33aa39d2c7fd09530d5449
Allow partial specialization of variable templates.
* cp-tree.h (TINFO_USED_TEMPLATE_ID): New.
* decl.c (duplicate_decls): Copy it.
* error.c (dump_decl) [TEMPLATE_ID_EXPR]: Handle variables.
* parser.c (cp_parser_decltype_expr): Do call finish_id_expression
on template-ids.
* pt.c (register_specialization): Remember variable template insts.
(instantiate_template_1): Find the matching partial specialization.
(check_explicit_specialization): Allow variable partial specialization.
(process_partial_specialization): Likewise.
(push_template_decl_real): Likewise.
(more_specialized_partial_spec): Rename from more_specialized_class.
(most_specialized_partial_spec): Rename from most_specialized_class.
(get_partial_spec_bindings): Rename from get_class_bindings.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218104 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/error.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/testsuite/g++.dg/cpp0x/variadic20.C
gcc/testsuite/g++.dg/cpp1y/var-templ16.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1y/var-templ18.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1y/var-templ19.C [new file with mode: 0644]