+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.
};
/* 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 */
/* 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,
void (*__destructor) (void *));
/* construct array */
+extern "C++"
void __cxa_vec_ctor (void *__array_address,
size_t __element_count,
size_t __element_size,
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,
*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,
}
// 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
{
/* allocate and construct array */
-void *
+extern "C++" void *
__cxa_vec_new (size_t element_count,
size_t element_size,
size_t padding_size,
}
/* construct array */
-void
+extern "C++" void
__cxa_vec_ctor (void *array_address,
size_t element_count,
size_t element_size,
}
/* destruct array */
-void
+extern "C++" void
__cxa_vec_dtor (void *array_address,
size_t element_count,
size_t element_size,
}
/* destruct and release array */
-void
+extern "C++" void
__cxa_vec_delete (void *array_address,
size_t element_size,
size_t padding_size,