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
This commit is contained in:
Nathan Sidwell 2000-05-06 15:52:11 +00:00 committed by Nathan Sidwell
parent a47fed553c
commit 1b846cccc6
5 changed files with 26 additions and 6 deletions

View File

@ -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.

View File

@ -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,

View File

@ -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,

View File

@ -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

View File

@ -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,