r274534 - in /trunk/gcc: cp/ChangeLog cp/class....

jason@gcc.gnu.org jason@gcc.gnu.org
Thu Aug 15 12:38:00 GMT 2019


Author: jason
Date: Thu Aug 15 12:38:50 2019
New Revision: 274534

URL: https://gcc.gnu.org/viewcvs?rev=274534&root=gcc&view=rev
Log:
	Implement P0848R3, Conditionally Trivial Special Member Functions.

With Concepts, overloads of special member functions can differ in
constraints, and this paper clarifies how that affects class properties: if
a class has a more constrained trivial copy constructor and a less
constrained non-trivial copy constructor, it is still trivially copyable.

	* tree.c (special_memfn_p): New.
	* class.c (add_method): When overloading, hide ineligible special
	member fns.
	(check_methods): Set TYPE_HAS_COMPLEX_* here.
	* decl.c (grok_special_member_properties): Not here.
	* name-lookup.c (push_class_level_binding_1): Move overloaded
	functions case down, accept FUNCTION_DECL as target_decl.

Added:
    trunk/gcc/testsuite/g++.dg/cpp2a/cond-triv1.C
    trunk/gcc/testsuite/g++.dg/cpp2a/cond-triv1a.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/class.c
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/decl.c
    trunk/gcc/cp/name-lookup.c
    trunk/gcc/cp/tree.c
    trunk/gcc/testsuite/g++.dg/concepts/pr89036.C



More information about the Gcc-cvs mailing list