Prepare for running on top of new libc++abi.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@149634 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b1bc0c4975
commit
dea7f39af1
199
lib/libc++abi2.exp
Normal file
199
lib/libc++abi2.exp
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
___cxa_allocate_exception
|
||||||
|
___cxa_end_catch
|
||||||
|
___cxa_demangle
|
||||||
|
___cxa_current_exception_type
|
||||||
|
___cxa_call_unexpected
|
||||||
|
___cxa_free_exception
|
||||||
|
___cxa_get_exception_ptr
|
||||||
|
___cxa_get_globals
|
||||||
|
___cxa_get_globals_fast
|
||||||
|
___cxa_guard_abort
|
||||||
|
___cxa_guard_acquire
|
||||||
|
___cxa_guard_release
|
||||||
|
___cxa_rethrow
|
||||||
|
___cxa_pure_virtual
|
||||||
|
___cxa_begin_catch
|
||||||
|
___cxa_throw
|
||||||
|
___cxa_vec_cctor
|
||||||
|
___cxa_vec_cleanup
|
||||||
|
___cxa_vec_ctor
|
||||||
|
___cxa_vec_delete
|
||||||
|
___cxa_vec_delete2
|
||||||
|
___cxa_vec_delete3
|
||||||
|
___cxa_vec_dtor
|
||||||
|
___cxa_vec_new
|
||||||
|
___cxa_vec_new2
|
||||||
|
___cxa_vec_new3
|
||||||
|
___dynamic_cast
|
||||||
|
___gxx_personality_v0
|
||||||
|
__ZTIDi
|
||||||
|
__ZTIDn
|
||||||
|
__ZTIDs
|
||||||
|
__ZTIPDi
|
||||||
|
__ZTIPDn
|
||||||
|
__ZTIPDs
|
||||||
|
__ZTIPKDi
|
||||||
|
__ZTIPKDn
|
||||||
|
__ZTIPKDs
|
||||||
|
__ZTSPm
|
||||||
|
__ZTSPl
|
||||||
|
__ZTSPj
|
||||||
|
__ZTSPi
|
||||||
|
__ZTSPh
|
||||||
|
__ZTSPf
|
||||||
|
__ZTSPe
|
||||||
|
__ZTSPd
|
||||||
|
__ZTSPc
|
||||||
|
__ZTSPb
|
||||||
|
__ZTSPa
|
||||||
|
__ZTSPKc
|
||||||
|
__ZTSPKy
|
||||||
|
__ZTSPKx
|
||||||
|
__ZTSPKw
|
||||||
|
__ZTSPKv
|
||||||
|
__ZTSPKt
|
||||||
|
__ZTSPKs
|
||||||
|
__ZTSPKm
|
||||||
|
__ZTSPKl
|
||||||
|
__ZTSPKi
|
||||||
|
__ZTSPKh
|
||||||
|
__ZTSPs
|
||||||
|
__ZTSPt
|
||||||
|
__ZTSPv
|
||||||
|
__ZTSPw
|
||||||
|
__ZTSPKa
|
||||||
|
__ZTSPx
|
||||||
|
__ZTSPy
|
||||||
|
__ZTSPKd
|
||||||
|
__ZTSPKe
|
||||||
|
__ZTSPKj
|
||||||
|
__ZTSPKb
|
||||||
|
__ZTSPKf
|
||||||
|
__ZTSv
|
||||||
|
__ZTSt
|
||||||
|
__ZTSs
|
||||||
|
__ZTSm
|
||||||
|
__ZTSl
|
||||||
|
__ZTSj
|
||||||
|
__ZTSi
|
||||||
|
__ZTSh
|
||||||
|
__ZTSf
|
||||||
|
__ZTSe
|
||||||
|
__ZTSd
|
||||||
|
__ZTSc
|
||||||
|
__ZTSw
|
||||||
|
__ZTSx
|
||||||
|
__ZTSy
|
||||||
|
__ZTSb
|
||||||
|
__ZTSa
|
||||||
|
__ZTIPKh
|
||||||
|
__ZTIPKf
|
||||||
|
__ZTIPKe
|
||||||
|
__ZTIPKd
|
||||||
|
__ZTIPKc
|
||||||
|
__ZTIPKb
|
||||||
|
__ZTIPKa
|
||||||
|
__ZTIPy
|
||||||
|
__ZTIPx
|
||||||
|
__ZTIPw
|
||||||
|
__ZTIPv
|
||||||
|
__ZTIPt
|
||||||
|
__ZTIPs
|
||||||
|
__ZTIPm
|
||||||
|
__ZTIPl
|
||||||
|
__ZTIPj
|
||||||
|
__ZTIPi
|
||||||
|
__ZTIPKi
|
||||||
|
__ZTIPKj
|
||||||
|
__ZTIPKl
|
||||||
|
__ZTIPKm
|
||||||
|
__ZTIPKs
|
||||||
|
__ZTIPKt
|
||||||
|
__ZTIPKv
|
||||||
|
__ZTIPKw
|
||||||
|
__ZTIPKx
|
||||||
|
__ZTIPKy
|
||||||
|
__ZTIPa
|
||||||
|
__ZTIPb
|
||||||
|
__ZTIPc
|
||||||
|
__ZTIPd
|
||||||
|
__ZTIPe
|
||||||
|
__ZTIPf
|
||||||
|
__ZTIPh
|
||||||
|
__ZTVN10__cxxabiv129__pointer_to_member_type_infoE
|
||||||
|
__ZTVN10__cxxabiv116__enum_type_infoE
|
||||||
|
__ZTVN10__cxxabiv117__array_type_infoE
|
||||||
|
__ZTVN10__cxxabiv117__class_type_infoE
|
||||||
|
__ZTVN10__cxxabiv117__pbase_type_infoE
|
||||||
|
__ZTVN10__cxxabiv119__pointer_type_infoE
|
||||||
|
__ZTVN10__cxxabiv120__function_type_infoE
|
||||||
|
__ZTVN10__cxxabiv120__si_class_type_infoE
|
||||||
|
__ZTVN10__cxxabiv121__vmi_class_type_infoE
|
||||||
|
__ZTVN10__cxxabiv123__fundamental_type_infoE
|
||||||
|
__ZTIa
|
||||||
|
__ZTIb
|
||||||
|
__ZTIc
|
||||||
|
__ZTId
|
||||||
|
__ZTIe
|
||||||
|
__ZTIf
|
||||||
|
__ZTIh
|
||||||
|
__ZTIi
|
||||||
|
__ZTIj
|
||||||
|
__ZTIl
|
||||||
|
__ZTIm
|
||||||
|
__ZTIs
|
||||||
|
__ZTIt
|
||||||
|
__ZTSN10__cxxabiv129__pointer_to_member_type_infoE
|
||||||
|
__ZTSN10__cxxabiv123__fundamental_type_infoE
|
||||||
|
__ZTSN10__cxxabiv121__vmi_class_type_infoE
|
||||||
|
__ZTSN10__cxxabiv120__si_class_type_infoE
|
||||||
|
__ZTSN10__cxxabiv120__function_type_infoE
|
||||||
|
__ZTSN10__cxxabiv119__pointer_type_infoE
|
||||||
|
__ZTSN10__cxxabiv117__pbase_type_infoE
|
||||||
|
__ZTSN10__cxxabiv117__class_type_infoE
|
||||||
|
__ZTSN10__cxxabiv117__array_type_infoE
|
||||||
|
__ZTSN10__cxxabiv116__enum_type_infoE
|
||||||
|
__ZTIy
|
||||||
|
__ZTIx
|
||||||
|
__ZTIw
|
||||||
|
__ZTIv
|
||||||
|
__ZSt13get_terminatev
|
||||||
|
__ZSt13set_terminatePFvvE
|
||||||
|
__ZSt14get_unexpectedv
|
||||||
|
__ZSt14set_unexpectedPFvvE
|
||||||
|
__ZSt15get_new_handlerv
|
||||||
|
__ZSt15set_new_handlerPFvvE
|
||||||
|
__ZSt9terminatev
|
||||||
|
__ZNSt9bad_allocD1Ev
|
||||||
|
__ZTISt9bad_alloc
|
||||||
|
__ZNSt9bad_allocC1Ev
|
||||||
|
__ZTISt13bad_exception
|
||||||
|
__ZTVSt10bad_typeid
|
||||||
|
__ZTVSt9exception
|
||||||
|
__ZNSt10bad_typeidC1Ev
|
||||||
|
__ZNSt10bad_typeidC1Ev
|
||||||
|
__ZNKSt10bad_typeid4whatEv
|
||||||
|
__ZNSt10bad_typeidD1Ev
|
||||||
|
__ZTVSt8bad_cast
|
||||||
|
__ZNSt8bad_castC1Ev
|
||||||
|
__ZNKSt8bad_cast4whatEv
|
||||||
|
__ZNSt8bad_castD1Ev
|
||||||
|
__ZTVSt9bad_alloc
|
||||||
|
__ZTVSt20bad_array_new_length
|
||||||
|
__ZTVSt13bad_exception
|
||||||
|
__ZNKSt9exception4whatEv
|
||||||
|
__ZNKSt9bad_alloc4whatEv
|
||||||
|
__ZNSt20bad_array_new_lengthC1Ev
|
||||||
|
__ZNKSt13bad_exception4whatEv
|
||||||
|
__ZNSt9exceptionD1Ev
|
||||||
|
__ZNKSt20bad_array_new_length4whatEv
|
||||||
|
__ZNSt13bad_exceptionD1Ev
|
||||||
|
__ZNSt20bad_array_new_lengthD1Ev
|
||||||
|
__ZdaPv
|
||||||
|
__ZdlPv
|
||||||
|
__ZdlPvRKSt9nothrow_t
|
||||||
|
__Znam
|
||||||
|
__ZdaPvRKSt9nothrow_t
|
||||||
|
__Znwm
|
||||||
|
__ZnwmRKSt9nothrow_t
|
||||||
|
__ZnamRKSt9nothrow_t
|
@ -12,14 +12,17 @@
|
|||||||
|
|
||||||
#if __APPLE__
|
#if __APPLE__
|
||||||
#include <cxxabi.h>
|
#include <cxxabi.h>
|
||||||
|
|
||||||
using namespace __cxxabiv1;
|
using namespace __cxxabiv1;
|
||||||
|
#define HAVE_DEPENDENT_EH_ABI 1
|
||||||
|
#ifndef _LIBCPPABI_VERSION
|
||||||
using namespace __cxxabiapple;
|
using namespace __cxxabiapple;
|
||||||
// On Darwin, there are two STL shared libraries and a lower level ABI
|
// On Darwin, there are two STL shared libraries and a lower level ABI
|
||||||
// shared libray. The globals holding the current terminate handler and
|
// shared libray. The globals holding the current terminate handler and
|
||||||
// current unexpected handler are in the ABI library.
|
// current unexpected handler are in the ABI library.
|
||||||
#define __terminate_handler __cxxabiapple::__cxa_terminate_handler
|
#define __terminate_handler __cxxabiapple::__cxa_terminate_handler
|
||||||
#define __unexpected_handler __cxxabiapple::__cxa_unexpected_handler
|
#define __unexpected_handler __cxxabiapple::__cxa_unexpected_handler
|
||||||
#define HAVE_DEPENDENT_EH_ABI 1
|
#endif // _LIBCPPABI_VERSION
|
||||||
#elif defined(LIBCXXRT)
|
#elif defined(LIBCXXRT)
|
||||||
#include <cxxabi.h>
|
#include <cxxabi.h>
|
||||||
using namespace __cxxabiv1;
|
using namespace __cxxabiv1;
|
||||||
@ -29,7 +32,8 @@
|
|||||||
static std::unexpected_handler __unexpected_handler;
|
static std::unexpected_handler __unexpected_handler;
|
||||||
#endif // __APPLE__
|
#endif // __APPLE__
|
||||||
|
|
||||||
#ifndef LIBCXXRT
|
#if !defined(LIBCXXRT) && !defined(_LIBCPPABI_VERSION)
|
||||||
|
|
||||||
// libcxxrt provides implementations of these functions itself.
|
// libcxxrt provides implementations of these functions itself.
|
||||||
std::unexpected_handler
|
std::unexpected_handler
|
||||||
std::set_unexpected(std::unexpected_handler func) _NOEXCEPT
|
std::set_unexpected(std::unexpected_handler func) _NOEXCEPT
|
||||||
@ -84,13 +88,13 @@ std::terminate() _NOEXCEPT
|
|||||||
}
|
}
|
||||||
#endif // _LIBCPP_NO_EXCEPTIONS
|
#endif // _LIBCPP_NO_EXCEPTIONS
|
||||||
}
|
}
|
||||||
#endif // LIBCXXRT
|
#endif // !defined(LIBCXXRT) && !defined(_LIBCPPABI_VERSION)
|
||||||
|
|
||||||
bool std::uncaught_exception() _NOEXCEPT
|
bool std::uncaught_exception() _NOEXCEPT
|
||||||
{
|
{
|
||||||
#if __APPLE__
|
#if __APPLE__
|
||||||
// on Darwin, there is a helper function so __cxa_get_globals is private
|
// on Darwin, there is a helper function so __cxa_get_globals is private
|
||||||
return __cxxabiapple::__cxa_uncaught_exception();
|
return __cxa_uncaught_exception();
|
||||||
#elif LIBCXXRT
|
#elif LIBCXXRT
|
||||||
__cxa_eh_globals * globals = __cxa_get_globals();
|
__cxa_eh_globals * globals = __cxa_get_globals();
|
||||||
return (globals->uncaughtExceptions != 0);
|
return (globals->uncaughtExceptions != 0);
|
||||||
@ -103,6 +107,8 @@ bool std::uncaught_exception() _NOEXCEPT
|
|||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#ifndef _LIBCPPABI_VERSION
|
||||||
|
|
||||||
exception::~exception() _NOEXCEPT
|
exception::~exception() _NOEXCEPT
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -121,6 +127,8 @@ const char* bad_exception::what() const _NOEXCEPT
|
|||||||
return "std::bad_exception";
|
return "std::bad_exception";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // _LIBCPPABI_VERSION
|
||||||
|
|
||||||
exception_ptr::~exception_ptr() _NOEXCEPT
|
exception_ptr::~exception_ptr() _NOEXCEPT
|
||||||
{
|
{
|
||||||
#if HAVE_DEPENDENT_EH_ABI
|
#if HAVE_DEPENDENT_EH_ABI
|
||||||
|
11
src/new.cpp
11
src/new.cpp
@ -13,14 +13,19 @@
|
|||||||
|
|
||||||
#if __APPLE__
|
#if __APPLE__
|
||||||
#include <cxxabi.h>
|
#include <cxxabi.h>
|
||||||
|
|
||||||
|
#ifndef _LIBCPPABI_VERSION
|
||||||
// On Darwin, there are two STL shared libraries and a lower level ABI
|
// On Darwin, there are two STL shared libraries and a lower level ABI
|
||||||
// shared libray. The global holding the current new handler is
|
// shared libray. The global holding the current new handler is
|
||||||
// in the ABI library and named __cxa_new_handler.
|
// in the ABI library and named __cxa_new_handler.
|
||||||
#define __new_handler __cxxabiapple::__cxa_new_handler
|
#define __new_handler __cxxabiapple::__cxa_new_handler
|
||||||
|
#endif
|
||||||
#else // __APPLE__
|
#else // __APPLE__
|
||||||
static std::new_handler __new_handler;
|
static std::new_handler __new_handler;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef _LIBCPPABI_VERSION
|
||||||
|
|
||||||
// Implement all new and delete operators as weak definitions
|
// Implement all new and delete operators as weak definitions
|
||||||
// in this shared library, so that they can be overriden by programs
|
// in this shared library, so that they can be overriden by programs
|
||||||
// that define non-weak copies of the functions.
|
// that define non-weak copies of the functions.
|
||||||
@ -129,11 +134,15 @@ operator delete[] (void* ptr, const std::nothrow_t&) _NOEXCEPT
|
|||||||
::operator delete[](ptr);
|
::operator delete[](ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
|
|
||||||
const nothrow_t nothrow = {};
|
const nothrow_t nothrow = {};
|
||||||
|
|
||||||
|
#ifndef _LIBCPPABI_VERSION
|
||||||
|
|
||||||
new_handler
|
new_handler
|
||||||
set_new_handler(new_handler handler) _NOEXCEPT
|
set_new_handler(new_handler handler) _NOEXCEPT
|
||||||
{
|
{
|
||||||
@ -174,6 +183,8 @@ bad_array_new_length::what() const _NOEXCEPT
|
|||||||
return "bad_array_new_length";
|
return "bad_array_new_length";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
__throw_bad_alloc()
|
__throw_bad_alloc()
|
||||||
{
|
{
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
#include "typeinfo"
|
#include "typeinfo"
|
||||||
|
|
||||||
|
#ifndef _LIBCPPABI_VERSION
|
||||||
|
|
||||||
std::bad_cast::bad_cast() _NOEXCEPT
|
std::bad_cast::bad_cast() _NOEXCEPT
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -48,3 +50,4 @@ std::bad_typeid::what() const _NOEXCEPT
|
|||||||
void __cxxabiv1::__cxa_bad_cast() { throw std::bad_cast(); }
|
void __cxxabiv1::__cxa_bad_cast() { throw std::bad_cast(); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif // _LIBCPPABI_VERSION
|
||||||
|
Loading…
x
Reference in New Issue
Block a user