aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2010-07-13 18:23:49 -0400
committerJason Merrill <jason@gcc.gnu.org>2010-07-13 18:23:49 -0400
commit7487bca5bb7db6e736d22be5ca0fb4f40f3ff71b (patch)
tree1a85f6b676136ee085095f0b0dfae644d6634b7c /gcc/cp/decl.c
parent8caa8b6590d1988ab1d13ff20d1317bbdd3748fb (diff)
downloadgcc-7487bca5bb7db6e736d22be5ca0fb4f40f3ff71b.zip
gcc-7487bca5bb7db6e736d22be5ca0fb4f40f3ff71b.tar.gz
gcc-7487bca5bb7db6e736d22be5ca0fb4f40f3ff71b.tar.bz2
re PR c++/44909 ([C++0x] Copy constructors implicitly deleted)
PR c++/44909 * cp-tree.h (struct lang_type_class): Add has_user_opeq. (TYPE_HAS_USER_OPEQ): New. * decl.c (grok_special_member_properties): Set it. * class.c (add_implicitly_declared_members): Don't lazily declare constructors/operator= if a base or member has a user-declared one. (check_bases_and_members, check_bases): Adjust. (check_field_decls, check_field_decl): Adjust. * method.c (synthesized_method_walk): Initialize check_vdtor. From-SVN: r162159
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r--gcc/cp/decl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 541f77e..1491720 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -10293,6 +10293,8 @@ grok_special_member_properties (tree decl)
int assop = copy_fn_p (decl);
+ if (!DECL_ARTIFICIAL (decl))
+ TYPE_HAS_USER_OPEQ (class_type) = 1;
if (assop)
{
TYPE_HAS_COPY_ASSIGN (class_type) = 1;