diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2000-05-24 14:17:27 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2000-05-24 14:17:27 +0000 |
commit | 01ce976d50cf5b93c0026f8ff206af8a1544493e (patch) | |
tree | 7a15c653bab43cdfe24d767be7f58578104e59ce /gcc/cp/inc/cxxabi.h | |
parent | 0543d026a2a6366375b25b55dd318eb1cca6876c (diff) | |
download | gcc-01ce976d50cf5b93c0026f8ff206af8a1544493e.zip gcc-01ce976d50cf5b93c0026f8ff206af8a1544493e.tar.gz gcc-01ce976d50cf5b93c0026f8ff206af8a1544493e.tar.bz2 |
Update new-abi upcast algorithm.
* inc/cxxabi.h (__class_type_info::__do_upcast): Change
prototype and meaning of return value.
(__si_class_type_info::__do_upcast): Likewise.
(__vmi_class_type_info::__do_upcast): Likewise.
* tinfo.cc (__class_type_info::__upcast_result): Replace
whole2dst with part2dst. Adjust ctor.
(__class_type_info::__do_upcast): Adjust call of worker function.
(__class_type_info::__do_upcast): Adjust.
(__si_class_type_info::__do_upcast): Adjust. Use parent's
__do_upcast.
(__vmi_class_type_info::__do_upcast): Likewise. Fix private
virtual base in diamond heirarchy bug.
From-SVN: r34132
Diffstat (limited to 'gcc/cp/inc/cxxabi.h')
-rw-r--r-- | gcc/cp/inc/cxxabi.h | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/gcc/cp/inc/cxxabi.h b/gcc/cp/inc/cxxabi.h index 55b01b7..c5eec5c 100644 --- a/gcc/cp/inc/cxxabi.h +++ b/gcc/cp/inc/cxxabi.h @@ -266,11 +266,9 @@ protected: public: - /* Helper for upcast. See if DST is us, or one of our bases. ACCESS_PATH */ - /* gives the access from the start object. Return TRUE if we know the upcast */ - /* fails. */ - virtual bool __do_upcast (__sub_kind __access_path, - const __class_type_info *__dst, + /* Helper for upcast. See if DST is us, or one of our bases. */ + /* Return false if not found, true if found. */ + virtual bool __do_upcast (const __class_type_info *__dst, const void *__obj, __upcast_result &__restrict __result) const; @@ -341,8 +339,7 @@ protected: const void *__obj_ptr, const __class_type_info *__src_type, const void *__sub_ptr) const; - virtual bool __do_upcast (__sub_kind __access_path, - const __class_type_info *__dst, + virtual bool __do_upcast (const __class_type_info *__dst, const void *__obj, __upcast_result &__restrict __result) const; }; @@ -391,8 +388,7 @@ protected: const void *__obj_ptr, const __class_type_info *__src_type, const void *__src_ptr) const; - virtual bool __do_upcast (__sub_kind __access_path, - const __class_type_info *__dst, + virtual bool __do_upcast (const __class_type_info *__dst, const void *__obj, __upcast_result &__restrict __result) const; }; |