summaryrefslogtreecommitdiff
path: root/gcc/cp/method.c
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-20 15:36:08 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-20 15:36:08 +0000
commit2967f654416d9fd9bb52d9468098d2603ecd0f1f (patch)
tree18b5792a881ad5765f15277372efc134e41fc1bc /gcc/cp/method.c
parent929e4aa0361623fe5a475d22a3508ff3d16a6f33 (diff)
downloadgcc-2967f654416d9fd9bb52d9468098d2603ecd0f1f.tar.gz
PR c++/16623
* cp-tree.h (lang_type_class): Add lazy_assignment_op. (CLASSTYPE_LAZY_ASSIGNMENT_OP): New macro. * class.c (add_implicitly_declared_members): Use CLASSTYPE_LAZY_ASSIGNMENT_OP. * method.c (lazily_declare_fn): Clear CLASSTYPE_LAZY_ASSIGNMENT_OP. * search.c (lookup_fnfields_1): Check it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84956 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/method.c')
-rw-r--r--gcc/cp/method.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index a28c90182c2..d2d52bbf0b9 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1064,6 +1064,8 @@ lazily_declare_fn (special_function_kind sfk, tree type)
/* Create appropriate clones. */
clone_function_decl (fn, /*update_method_vec=*/true);
}
+ else if (sfk == sfk_assignment_operator)
+ CLASSTYPE_LAZY_ASSIGNMENT_OP (type) = 0;
return fn;
}