[cfe-commits] [libcxx] r149634 - in /libcxx/trunk: lib/libc++abi2.exp src/exception.cpp src/new.cpp src/typeinfo.cpp
Howard Hinnant
hhinnant at apple.com
Thu Feb 2 12:48:36 PST 2012
Author: hhinnant
Date: Thu Feb 2 14:48:35 2012
New Revision: 149634
URL: http://llvm.org/viewvc/llvm-project?rev=149634&view=rev
Log:
Prepare for running on top of new libc++abi.
Added:
libcxx/trunk/lib/libc++abi2.exp
Modified:
libcxx/trunk/src/exception.cpp
libcxx/trunk/src/new.cpp
libcxx/trunk/src/typeinfo.cpp
Added: libcxx/trunk/lib/libc++abi2.exp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/lib/libc%2B%2Babi2.exp?rev=149634&view=auto
==============================================================================
--- libcxx/trunk/lib/libc++abi2.exp (added)
+++ libcxx/trunk/lib/libc++abi2.exp Thu Feb 2 14:48:35 2012
@@ -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
Modified: libcxx/trunk/src/exception.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/exception.cpp?rev=149634&r1=149633&r2=149634&view=diff
==============================================================================
--- libcxx/trunk/src/exception.cpp (original)
+++ libcxx/trunk/src/exception.cpp Thu Feb 2 14:48:35 2012
@@ -12,14 +12,17 @@
#if __APPLE__
#include <cxxabi.h>
+
using namespace __cxxabiv1;
- using namespace __cxxabiapple;
- // On Darwin, there are two STL shared libraries and a lower level ABI
- // shared libray. The globals holding the current terminate handler and
- // current unexpected handler are in the ABI library.
- #define __terminate_handler __cxxabiapple::__cxa_terminate_handler
- #define __unexpected_handler __cxxabiapple::__cxa_unexpected_handler
#define HAVE_DEPENDENT_EH_ABI 1
+ #ifndef _LIBCPPABI_VERSION
+ using namespace __cxxabiapple;
+ // On Darwin, there are two STL shared libraries and a lower level ABI
+ // shared libray. The globals holding the current terminate handler and
+ // current unexpected handler are in the ABI library.
+ #define __terminate_handler __cxxabiapple::__cxa_terminate_handler
+ #define __unexpected_handler __cxxabiapple::__cxa_unexpected_handler
+ #endif // _LIBCPPABI_VERSION
#elif defined(LIBCXXRT)
#include <cxxabi.h>
using namespace __cxxabiv1;
@@ -29,7 +32,8 @@
static std::unexpected_handler __unexpected_handler;
#endif // __APPLE__
-#ifndef LIBCXXRT
+#if !defined(LIBCXXRT) && !defined(_LIBCPPABI_VERSION)
+
// libcxxrt provides implementations of these functions itself.
std::unexpected_handler
std::set_unexpected(std::unexpected_handler func) _NOEXCEPT
@@ -84,13 +88,13 @@
}
#endif // _LIBCPP_NO_EXCEPTIONS
}
-#endif // LIBCXXRT
+#endif // !defined(LIBCXXRT) && !defined(_LIBCPPABI_VERSION)
bool std::uncaught_exception() _NOEXCEPT
{
#if __APPLE__
// on Darwin, there is a helper function so __cxa_get_globals is private
- return __cxxabiapple::__cxa_uncaught_exception();
+ return __cxa_uncaught_exception();
#elif LIBCXXRT
__cxa_eh_globals * globals = __cxa_get_globals();
return (globals->uncaughtExceptions != 0);
@@ -103,6 +107,8 @@
namespace std
{
+#ifndef _LIBCPPABI_VERSION
+
exception::~exception() _NOEXCEPT
{
}
@@ -121,6 +127,8 @@
return "std::bad_exception";
}
+#endif // _LIBCPPABI_VERSION
+
exception_ptr::~exception_ptr() _NOEXCEPT
{
#if HAVE_DEPENDENT_EH_ABI
Modified: libcxx/trunk/src/new.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/new.cpp?rev=149634&r1=149633&r2=149634&view=diff
==============================================================================
--- libcxx/trunk/src/new.cpp (original)
+++ libcxx/trunk/src/new.cpp Thu Feb 2 14:48:35 2012
@@ -13,14 +13,19 @@
#if __APPLE__
#include <cxxabi.h>
- // On Darwin, there are two STL shared libraries and a lower level ABI
- // shared libray. The global holding the current new handler is
- // in the ABI library and named __cxa_new_handler.
- #define __new_handler __cxxabiapple::__cxa_new_handler
+
+ #ifndef _LIBCPPABI_VERSION
+ // On Darwin, there are two STL shared libraries and a lower level ABI
+ // shared libray. The global holding the current new handler is
+ // in the ABI library and named __cxa_new_handler.
+ #define __new_handler __cxxabiapple::__cxa_new_handler
+ #endif
#else // __APPLE__
static std::new_handler __new_handler;
#endif
+#ifndef _LIBCPPABI_VERSION
+
// Implement all new and delete operators as weak definitions
// in this shared library, so that they can be overriden by programs
// that define non-weak copies of the functions.
@@ -129,11 +134,15 @@
::operator delete[](ptr);
}
+#endif
+
namespace std
{
const nothrow_t nothrow = {};
+#ifndef _LIBCPPABI_VERSION
+
new_handler
set_new_handler(new_handler handler) _NOEXCEPT
{
@@ -174,6 +183,8 @@
return "bad_array_new_length";
}
+#endif
+
void
__throw_bad_alloc()
{
Modified: libcxx/trunk/src/typeinfo.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/typeinfo.cpp?rev=149634&r1=149633&r2=149634&view=diff
==============================================================================
--- libcxx/trunk/src/typeinfo.cpp (original)
+++ libcxx/trunk/src/typeinfo.cpp Thu Feb 2 14:48:35 2012
@@ -13,6 +13,8 @@
#include "typeinfo"
+#ifndef _LIBCPPABI_VERSION
+
std::bad_cast::bad_cast() _NOEXCEPT
{
}
@@ -48,3 +50,4 @@
void __cxxabiv1::__cxa_bad_cast() { throw std::bad_cast(); }
#endif
+#endif // _LIBCPPABI_VERSION
More information about the cfe-commits
mailing list