aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/class.c6
-rw-r--r--gcc/cp/cp-tree.h8
-rw-r--r--gcc/cp/method.c2
4 files changed, 6 insertions, 14 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 84b4bdd..27e45ee 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+2004-07-19 Mark Mitchell <mark@codesourcery.com>
+
+ Revert patch for PR c++/16623.
+
2004-07-19 Kelley Cook <kcook@gcc.gnu.org>
* except.c: Remove two spurious carriage returns.
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 75f7152..69f6d9e 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -2558,11 +2558,7 @@ add_implicitly_declared_members (tree t,
of the parameter to the assignment operator will be a const or
non-const reference. */
if (!TYPE_HAS_ASSIGN_REF (t) && !TYPE_FOR_JAVA (t))
- {
- TYPE_HAS_ASSIGN_REF (t) = 1;
- TYPE_HAS_CONST_ASSIGN_REF (t) = !cant_have_const_assignment;
- CLASSTYPE_LAZY_ASSIGNMENT_OP (t) = 1;
- }
+ TYPE_HAS_CONST_ASSIGN_REF (t) = !cant_have_const_assignment;
/* Now, hook all of the new functions on to TYPE_METHODS,
and add them to the CLASSTYPE_METHOD_VEC. */
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index ad8e8dd..ca7eae3 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -989,7 +989,6 @@ struct lang_type_class GTY(())
unsigned lazy_default_ctor : 1;
unsigned lazy_copy_ctor : 1;
- unsigned lazy_assignment_op : 1;
unsigned has_const_init_ref : 1;
unsigned has_complex_init_ref : 1;
unsigned has_complex_assign_ref : 1;
@@ -1003,7 +1002,7 @@ struct lang_type_class GTY(())
/* There are some bits left to fill out a 32-bit word. Keep track
of this by updating the size of this bitfield whenever you add or
remove a flag. */
- unsigned dummy : 8;
+ unsigned dummy : 9;
tree primary_base;
tree vfields;
@@ -1098,11 +1097,6 @@ struct lang_type GTY(())
#define CLASSTYPE_LAZY_COPY_CTOR(NODE) \
(LANG_TYPE_CLASS_CHECK (NODE)->lazy_copy_ctor)
-/* Nonzero means that NODE (a class type) has an assignment operator
- -- but that it has not yet been declared. */
-#define CLASSTYPE_LAZY_ASSIGNMENT_OP(NODE) \
- (LANG_TYPE_CLASS_CHECK (NODE)->lazy_assignment_op)
-
/* Nonzero means that this _CLASSTYPE node overloads operator=(X&). */
#define TYPE_HAS_ASSIGN_REF(NODE) (LANG_TYPE_CLASS_CHECK (NODE)->has_assign_ref)
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index e3c65f8..802d4c0 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1068,8 +1068,6 @@ 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;
}