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