aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/class.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 0fe79fe..1941973 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2000-07-11 Mark Mitchell <mark@codesourcery.com>
+
+ * class.c (layout_class_type): Add pointers to virtual bases after
+ base classes under the old ABI.
+
2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
* semantics.c (finish_for_stmt): Remove call to emit_line_note.
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 2ec325b..94da8a0 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -4795,11 +4795,11 @@ layout_class_type (t, empty_p, vfuns_p,
place_field (rli, vptr);
}
+ /* Build FIELD_DECLs for all of the non-virtual base-types. */
+ v = build_base_fields (rli, empty_p);
/* Add pointers to all of our virtual base-classes. */
TYPE_FIELDS (t) = chainon (build_vbase_pointer_fields (rli, empty_p),
TYPE_FIELDS (t));
- /* Build FIELD_DECLs for all of the non-virtual base-types. */
- v = build_base_fields (rli, empty_p);
/* CLASSTYPE_INLINE_FRIENDS is really TYPE_NONCOPIED_PARTS. Thus,
we have to save this before we start modifying