diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2000-05-06 15:52:11 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2000-05-06 15:52:11 +0000 |
commit | 1b846cccc633e057ec481250e21ee20461a4e5fd (patch) | |
tree | df6ce9401647fcde37a1205382c2b1b7672eeba9 /gcc/cp | |
parent | a47fed553cca4889ecffc6f6b075b4a403ad0cc5 (diff) | |
download | gcc-1b846cccc633e057ec481250e21ee20461a4e5fd.zip gcc-1b846cccc633e057ec481250e21ee20461a4e5fd.tar.gz gcc-1b846cccc633e057ec481250e21ee20461a4e5fd.tar.bz2 |
rtti.c (ptmd_initializer): Set non-public, if class is incomplete.
* rtti.c (ptmd_initializer): Set non-public, if class is
incomplete.
* inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++".
(__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
__cxa_vec_delete): Likewise.
* tinfo.cc (__dynamic_cast): Likewise.
* vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor,
__cxa_vec_delete): Likewise.
From-SVN: r33726
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/cp/inc/cxxabi.h | 5 | ||||
-rw-r--r-- | gcc/cp/rtti.c | 5 | ||||
-rw-r--r-- | gcc/cp/tinfo.cc | 2 | ||||
-rw-r--r-- | gcc/cp/vec.cc | 8 |
5 files changed, 26 insertions, 6 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 636f30e..fd182b6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,15 @@ +2000-05-06 Nathan Sidwell <nathan@codesourcery.com> + + * rtti.c (ptmd_initializer): Set non-public, if class is + incomplete. + + * inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++". + (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, + __cxa_vec_delete): Likewise. + * tinfo.cc (__dynamic_cast): Likewise. + * vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, + __cxa_vec_delete): Likewise. + 2000-05-04 Mark Mitchell <mark@codesourcery.com> * cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove. diff --git a/gcc/cp/inc/cxxabi.h b/gcc/cp/inc/cxxabi.h index b856240..959d23f 100644 --- a/gcc/cp/inc/cxxabi.h +++ b/gcc/cp/inc/cxxabi.h @@ -394,6 +394,7 @@ protected: }; /* dynamic cast runtime */ +extern "C++" void *__dynamic_cast (const void *__src_ptr, /* object started from */ const __class_type_info *__src_type, /* static type of object */ const __class_type_info *__dst_type, /* desired target type */ @@ -409,6 +410,7 @@ void *__dynamic_cast (const void *__src_ptr, /* object started from */ /* array ctor/dtor routines */ /* allocate and construct array */ +extern "C++" void *__cxa_vec_new (size_t __element_count, size_t __element_size, size_t __padding_size, @@ -416,6 +418,7 @@ void *__cxa_vec_new (size_t __element_count, void (*__destructor) (void *)); /* construct array */ +extern "C++" void __cxa_vec_ctor (void *__array_address, size_t __element_count, size_t __element_size, @@ -423,12 +426,14 @@ void __cxa_vec_ctor (void *__array_address, void (*__destructor) (void *)); /* destruct array */ +extern "C++" void __cxa_vec_dtor (void *__array_address, size_t __element_count, size_t __element_size, void (*__destructor) (void *)); /* destruct and release array */ +extern "C++" void __cxa_vec_delete (void *__array_address, size_t __element_size, size_t __padding_size, diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c index b16faf7..426c5c3 100644 --- a/gcc/cp/rtti.c +++ b/gcc/cp/rtti.c @@ -1440,7 +1440,10 @@ ptmd_initializer (desc, target, non_public_ptr) *non_public_ptr = 1; } if (!COMPLETE_TYPE_P (klass)) - flags |= 0x10; + { + flags |= 0x10; + *non_public_ptr = 1; + } init = tree_cons (NULL_TREE, build_int_2 (flags, 0), init); init = tree_cons (NULL_TREE, build_unary_op (ADDR_EXPR, diff --git a/gcc/cp/tinfo.cc b/gcc/cp/tinfo.cc index a710aab..ec2d262 100644 --- a/gcc/cp/tinfo.cc +++ b/gcc/cp/tinfo.cc @@ -1137,7 +1137,7 @@ __do_upcast (__sub_kind access_path, } // this is the external interface to the dynamic cast machinery -void * +extern "C++" void * __dynamic_cast (const void *src_ptr, // object started from const __class_type_info *src_type, // type of the starting object const __class_type_info *dst_type, // desired target type diff --git a/gcc/cp/vec.cc b/gcc/cp/vec.cc index 23aef76..e88e48d 100644 --- a/gcc/cp/vec.cc +++ b/gcc/cp/vec.cc @@ -40,7 +40,7 @@ namespace __cxxabiv1 { /* allocate and construct array */ -void * +extern "C++" void * __cxa_vec_new (size_t element_count, size_t element_size, size_t padding_size, @@ -70,7 +70,7 @@ __cxa_vec_new (size_t element_count, } /* construct array */ -void +extern "C++" void __cxa_vec_ctor (void *array_address, size_t element_count, size_t element_size, @@ -95,7 +95,7 @@ __cxa_vec_ctor (void *array_address, } /* destruct array */ -void +extern "C++" void __cxa_vec_dtor (void *array_address, size_t element_count, size_t element_size, @@ -131,7 +131,7 @@ __cxa_vec_dtor (void *array_address, } /* destruct and release array */ -void +extern "C++" void __cxa_vec_delete (void *array_address, size_t element_size, size_t padding_size, |