diff options
author | Mark Mitchell <mark@codesourcery.com> | 2000-07-11 17:31:21 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2000-07-11 17:31:21 +0000 |
commit | 72a50ab01331e60cd2c8257d65fbda007ccead72 (patch) | |
tree | 9b4ca1d1e1db665357640451fdd55dbe676b13f8 | |
parent | c5d9004e96d9726c0addd0db01824fec11d57aef (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/class.c | 4 |
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 |