diff options
author | Mark Mitchell <mark@codesourcery.com> | 2002-11-27 20:44:16 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2002-11-27 20:44:16 +0000 |
commit | 21b3d0ba2b0f3871a2c889d91b187ae9ab13cca9 (patch) | |
tree | 847dbd41e3fb6bfc15da94367585836a25b0919e | |
parent | 249e6b636b649387f0e0a537d2c2615c6d36d56f (diff) | |
download | gcc-21b3d0ba2b0f3871a2c889d91b187ae9ab13cca9.zip gcc-21b3d0ba2b0f3871a2c889d91b187ae9ab13cca9.tar.gz gcc-21b3d0ba2b0f3871a2c889d91b187ae9ab13cca9.tar.bz2 |
class.c (build_base_field): Make sure we get the canonical base when descending through primary bases.
* class.c (build_base_field): Make sure we get the canonical base
when descending through primary bases.
From-SVN: r59582
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/class.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 42ae0dd..677a6bb 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2002-11-27 Mark Mitchell <mark@codesourcery.com> + + * class.c (build_base_field): Make sure we get the canonical base + when descending through primary bases. + 2002-11-26 Geoffrey Keating <geoffk@apple.com> * decl.c (check_initializer): Don't error on initialisation of diff --git a/gcc/cp/class.c b/gcc/cp/class.c index fdd9c47..0d93334 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -3863,7 +3863,10 @@ build_base_field (record_layout_info rli, tree binfo, tree b; b = get_primary_binfo (binfo); - if (!b || BINFO_PRIMARY_BASE_OF (b) != binfo) + if (!b) + break; + b = CANONICAL_BINFO (b, rli->t); + if (BINFO_PRIMARY_BASE_OF (b) != binfo) break; if (TREE_VIA_VIRTUAL (b)) record_subobject_offsets (BINFO_TYPE (b), |