summaryrefslogtreecommitdiffstats
path: root/contrib/libc++/src/typeinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libc++/src/typeinfo.cpp')
-rw-r--r--contrib/libc++/src/typeinfo.cpp68
1 files changed, 5 insertions, 63 deletions
diff --git a/contrib/libc++/src/typeinfo.cpp b/contrib/libc++/src/typeinfo.cpp
index d0a7dae..02778f3 100644
--- a/contrib/libc++/src/typeinfo.cpp
+++ b/contrib/libc++/src/typeinfo.cpp
@@ -6,73 +6,15 @@
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
-#include <stdlib.h>
-
-#if !defined(_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY) && \
- (defined(__APPLE__) || defined(LIBCXXRT) || defined(LIBCXX_BUILDING_LIBCXXABI))
-#include <cxxabi.h>
-#endif
#include "typeinfo"
-#if defined(_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY)
+// FIXME: Remove __APPLE__ default here once buildit is gone.
+#if (!defined(_LIBCPP_ABI_MICROSOFT) && !defined(LIBCXX_BUILDING_LIBCXXABI) && \
+ !defined(LIBCXXRT) && !defined(__GLIBCXX__) && \
+ !defined(__APPLE__)) || \
+ defined(_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY) // FIXME: remove this configuration.
std::type_info::~type_info()
{
}
#endif
-
-#if !defined(LIBCXXRT) && !defined(_LIBCPPABI_VERSION)
-
-std::bad_cast::bad_cast() _NOEXCEPT
-{
-}
-
-std::bad_typeid::bad_typeid() _NOEXCEPT
-{
-}
-
-#ifndef __GLIBCXX__
-
-std::bad_cast::~bad_cast() _NOEXCEPT
-{
-}
-
-const char*
-std::bad_cast::what() const _NOEXCEPT
-{
- return "std::bad_cast";
-}
-
-std::bad_typeid::~bad_typeid() _NOEXCEPT
-{
-}
-
-const char*
-std::bad_typeid::what() const _NOEXCEPT
-{
- return "std::bad_typeid";
-}
-
-#if defined(__APPLE__) && !defined(_LIBCPP_BUILDING_HAS_NO_ABI_LIBRARY)
- // On Darwin, the cxa_bad_* functions cannot be in the lower level library
- // because bad_cast and bad_typeid are defined in his higher level library
- void __cxxabiv1::__cxa_bad_typeid()
- {
-#ifndef _LIBCPP_NO_EXCEPTIONS
- throw std::bad_typeid();
-#else
- _VSTD::abort();
-#endif
- }
- void __cxxabiv1::__cxa_bad_cast()
- {
-#ifndef _LIBCPP_NO_EXCEPTIONS
- throw std::bad_cast();
-#else
- _VSTD::abort();
-#endif
- }
-#endif
-
-#endif // !__GLIBCXX__
-#endif // !LIBCXXRT && !_LIBCPPABI_VERSION
OpenPOWER on IntegriCloud