X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc%2B%2B.so_src%2Fcxxabi.cc;h=bd35690af4146f4dd554260814b024c8b21feffc;hb=92c5980925e773c6e1d6775c50c9d86c77b84d23;hp=adda291c7982acd1cfc976bebbcc9a18a5d4ba2d;hpb=b7d9f86f7a1c23be18b50d5c647fd5d3c08369c3;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc++.so_src/cxxabi.cc b/Usermode/Libraries/libc++.so_src/cxxabi.cc index adda291c..bd35690a 100644 --- a/Usermode/Libraries/libc++.so_src/cxxabi.cc +++ b/Usermode/Libraries/libc++.so_src/cxxabi.cc @@ -4,8 +4,13 @@ * * cxxabi.cc * - C++ ABI Namespace + * + * NOTE: GCC follows the Itanium™ C++ ABI on all platforms + * http://mentorembedded.github.io/cxx-abi/abi.html + * http://libcxxabi.llvm.org/spec.html */ #include +#include namespace __cxxabiv1 { @@ -30,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; +} +