X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Usermode%2FLibraries%2Flibc%2B%2B.so_src%2Fcxxabi.cc;h=bd35690af4146f4dd554260814b024c8b21feffc;hb=5b487e31cf5145372e9777e9f82a8cd661d4f1b4;hp=84cedf2c7e2ca2f24de4789c6fb503c9edf6f11e;hpb=2f3e82a7b2847e6ff7d65e73295bf3d6469236ab;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc++.so_src/cxxabi.cc b/Usermode/Libraries/libc++.so_src/cxxabi.cc index 84cedf2c..bd35690a 100644 --- a/Usermode/Libraries/libc++.so_src/cxxabi.cc +++ b/Usermode/Libraries/libc++.so_src/cxxabi.cc @@ -10,6 +10,7 @@ * http://libcxxabi.llvm.org/spec.html */ #include +#include namespace __cxxabiv1 { @@ -34,3 +35,28 @@ __vmi_class_type_info::~__vmi_class_type_info() }; // namespace __cxxabiv1 +extern "C" void __cxa_bad_cast () +{ + _SysDebug("__cxa_bad_cast"); + for(;;); + //throw ::std::bad_cast; +} + +extern "C" void __cxa_bad_typeid () +{ + _SysDebug("__cxa_bad_typeid"); + for(;;); + //throw ::std::bad_typeid; +} + +extern "C" void* __dynamic_cast( + const void *sub, + const __cxxabiv1::__class_type_info *src, + const __cxxabiv1::__class_type_info *dst, + ptrdiff_t src2dst_offset + ) +{ + _SysDebug("TODO: __dynamic_cast %p %s to %s, hint=%p", sub, dst->name(), src->name(), src2dst_offset); + return NULL; +} +