aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2000-07-11 17:31:21 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2000-07-11 17:31:21 +0000
commit72a50ab01331e60cd2c8257d65fbda007ccead72 (patch)
tree9b4ca1d1e1db665357640451fdd55dbe676b13f8
parentc5d9004e96d9726c0addd0db01824fec11d57aef (diff)
downloadgcc-72a50ab01331e60cd2c8257d65fbda007ccead72.zip
gcc-72a50ab01331e60cd2c8257d65fbda007ccead72.tar.gz
gcc-72a50ab01331e60cd2c8257d65fbda007ccead72.tar.bz2
class.c (layout_class_type): Add pointers to virtual bases after base classes under the old ABI.
* class.c (layout_class_type): Add pointers to virtual bases after base classes under the old ABI. From-SVN: r34961
-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