diff options
author | Jeffrey D. Oldham <oldham@codesourcery.com> | 2003-01-14 21:36:20 +0000 |
---|---|---|
committer | Jeffrey D. Oldham <oldham@gcc.gnu.org> | 2003-01-14 21:36:20 +0000 |
commit | a7189b490f153fe449c45171f9f35e6a60353e57 (patch) | |
tree | 705346a28d62a633c3d46d47bac4a790d5c8f560 /gcc/cp | |
parent | 7365ecf7896065901cd8689f62873acdeaf38a25 (diff) | |
download | gcc-a7189b490f153fe449c45171f9f35e6a60353e57.zip gcc-a7189b490f153fe449c45171f9f35e6a60353e57.tar.gz gcc-a7189b490f153fe449c45171f9f35e6a60353e57.tar.bz2 |
Further conform g++'s __vmi_class_type_info to the C++ ABI specification.
2003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com>
Further conform g++'s __vmi_class_type_info to the C++ ABI
specification.
* gcc/cp/rtti.c (dfs_class_hint_mark): Do not set hints not
specified by the specification.
(class_hint_flags): Likewise.
* gcc/testsuite/g++.old-deja/g++.abi/vmihint.C (main): Revise
expected flags per the specification.
* libstdc++-v3/libsupc++/cxxabi.h
(__vmi_class_type_info::__flags_masks): Remove enumerations not
required by the specification.
From-SVN: r61304
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/cp/rtti.c | 12 |
2 files changed, 9 insertions, 11 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index aad06b7..b49c6da 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,11 @@ +2003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com> + + Further conform g++'s __vmi_class_type_info to the C++ ABI + specification. + * rtti.c (dfs_class_hint_mark): Do not set hints not specified by + the specification. + (class_hint_flags): Likewise. + 2003-01-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> * config-lang.in: Add semantics.c to gtfiles. diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c index 71b8e34..0b68805 100644 --- a/gcc/cp/rtti.c +++ b/gcc/cp/rtti.c @@ -1,5 +1,5 @@ /* RunTime Type Identification - Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Mostly written by Jason Merrill (jason@cygnus.com). @@ -916,8 +916,6 @@ dfs_class_hint_mark (tree binfo, void *data) *hint |= 1; SET_CLASSTYPE_MARKED (basetype); } - if (!TREE_VIA_PUBLIC (binfo) && TYPE_BINFO (basetype) != binfo) - *hint |= 4; return NULL_TREE; }; @@ -939,18 +937,10 @@ static int class_hint_flags (tree type) { int hint_flags = 0; - int i; dfs_walk (TYPE_BINFO (type), dfs_class_hint_mark, NULL, &hint_flags); dfs_walk (TYPE_BINFO (type), dfs_class_hint_unmark, NULL, NULL); - for (i = 0; i < CLASSTYPE_N_BASECLASSES (type); ++i) - { - tree base_binfo = BINFO_BASETYPE (TYPE_BINFO (type), i); - - if (TREE_VIA_PUBLIC (base_binfo)) - hint_flags |= 0x8; - } return hint_flags; } |