]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/c-family/ChangeLog
Implement P0522R0, matching of template template arguments.
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 21 Dec 2016 19:39:04 +0000 (19:39 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 21 Dec 2016 19:39:04 +0000 (19:39 +0000)
commit7806e079290fe3c02fca172f792b7f653ba4cf39
tree6a4c3f49466411d75b33e5d43dd222039ad777dd
parent784c77ce8cac38defa95faf85144c8f02848dfdb
Implement P0522R0, matching of template template arguments.

gcc/c-family/
* c.opt (-fnew-ttp-matching): New flag.
* c-opts.c (c_common_post_options): Default on if -std=c++1z.
gcc/cp/
* pt.c (coerce_template_template_parms): Allow a template argument
that's less specialized than the parameter.
(unify_bound_ttp_args): Adjust parm's args to apply to arg's
template.
(coerce_template_args_for_ttp): Split out from
lookup_template_class_1.
(coerce_ttp_args_for_tta, store_defaulted_ttp)
(lookup_defaulted_ttp, add_defaults_to_ttp): New.
(process_partial_specialization): Set DECL_CONTEXT of
template template-parameters.
(coerce_template_parms): Only inform when complain.
(expand_template_argument_pack): Handle error_mark_node.
(convert_template_argument, template_args_equal, unify): Handle
any_targ_node.
* cp-tree.h (enum cp_tree_index): Add CPTI_ANY_TARG.
(any_targ_node): New.
* decl.c (cxx_init_decl_processing): Set it.
* name-lookup.c (consider_binding_level): Ignore names with embedded
spaces.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@243871 138bc75d-0d04-0410-961f-82ee72b054a4
26 files changed:
gcc/c-family/ChangeLog
gcc/c-family/c-opts.c
gcc/c-family/c.opt
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/name-lookup.c
gcc/cp/pt.c
gcc/doc/invoke.texi
gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C
gcc/testsuite/g++.dg/cpp0x/variadic-ex14a.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/variadic-ttp4.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/variadic-ttp5.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/variadic79.C
gcc/testsuite/g++.dg/cpp0x/variadic79a.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp0x/variadic85.C
gcc/testsuite/g++.dg/cpp0x/variadic85a.C [new file with mode: 0644]
gcc/testsuite/g++.dg/cpp1z/ttp1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/ttp16.C
gcc/testsuite/g++.dg/template/ttp16a.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/ttp17.C
gcc/testsuite/g++.dg/template/ttp17a.C [new file with mode: 0644]
gcc/testsuite/g++.dg/torture/pr68220.C
gcc/testsuite/g++.old-deja/g++.pt/ttp49.C
gcc/testsuite/g++.old-deja/g++.pt/ttp49a.C [new file with mode: 0644]
libstdc++-v3/ChangeLog