r243871 - in /trunk: gcc/c-family/ChangeLog gcc...

jason@gcc.gnu.org jason@gcc.gnu.org
Wed Dec 21 19:39:00 GMT 2016


Author: jason
Date: Wed Dec 21 19:39:04 2016
New Revision: 243871

URL: https://gcc.gnu.org/viewcvs?rev=243871&root=gcc&view=rev
Log:
	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.

Modified:
    trunk/libstdc++-v3/ChangeLog

Changes in other areas also in this revision:
Added:
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex14a.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ttp4.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ttp5.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic79a.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic85a.C
      - copied, changed from r243870, trunk/gcc/testsuite/g++.dg/cpp0x/variadic85.C
    trunk/gcc/testsuite/g++.dg/cpp1z/ttp1.C
    trunk/gcc/testsuite/g++.dg/template/ttp16a.C
      - copied, changed from r243870, trunk/gcc/testsuite/g++.dg/template/ttp16.C
    trunk/gcc/testsuite/g++.dg/template/ttp17a.C
      - copied, changed from r243870, trunk/gcc/testsuite/g++.dg/template/ttp17.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp49a.C
      - copied, changed from r243870, trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp49.C
Modified:
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-opts.c
    trunk/gcc/c-family/c.opt
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/decl.c
    trunk/gcc/cp/name-lookup.c
    trunk/gcc/cp/pt.c
    trunk/gcc/doc/invoke.texi
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic79.C
    trunk/gcc/testsuite/g++.dg/cpp0x/variadic85.C
    trunk/gcc/testsuite/g++.dg/template/ttp16.C
    trunk/gcc/testsuite/g++.dg/template/ttp17.C
    trunk/gcc/testsuite/g++.dg/torture/pr68220.C
    trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp49.C



More information about the Libstdc++-cvs mailing list