summaryrefslogtreecommitdiffstats
path: root/libcxx/include/typeinfo
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2017-02-10 04:25:33 +0000
committerEric Fiselier <eric@efcs.ca>2017-02-10 04:25:33 +0000
commitdef60acdf5ff7d5c8807bcf5382de2767e3a8819 (patch)
tree951b04a74001095c5c7f51255873fba8ff705ceb /libcxx/include/typeinfo
parent982c5eb396a9a30b5dd17ac71fab9a9860317e85 (diff)
downloadbcm5719-llvm-def60acdf5ff7d5c8807bcf5382de2767e3a8819.tar.gz
bcm5719-llvm-def60acdf5ff7d5c8807bcf5382de2767e3a8819.zip
Split exception.cpp and new.cpp implementation into different files for different runtimes.
exception.cpp is a bloody mess. It's full of confusing #ifdef branches for each different ABI library we support, and it's getting unmaintainable. This patch breaks down exception.cpp into multiple different header files, roughly one per implementation. Additionally it moves the definitions of exceptions in new.cpp into the correct implementation header. This patch also removes an unmaintained libc++abi configuration. This configuration may still be used by Apple internally but there are no other possible users. If it turns out that Apple still uses this configuration internally I will re-add it in a later commit. See http://llvm.org/PR31904. llvm-svn: 294707
Diffstat (limited to 'libcxx/include/typeinfo')
-rw-r--r--libcxx/include/typeinfo7
1 files changed, 6 insertions, 1 deletions
diff --git a/libcxx/include/typeinfo b/libcxx/include/typeinfo
index fdc25c81e94..4145ac1a373 100644
--- a/libcxx/include/typeinfo
+++ b/libcxx/include/typeinfo
@@ -69,7 +69,9 @@ public:
#pragma GCC system_header
#endif
-#if defined(_LIBCPP_NONUNIQUE_RTTI_BIT)
+#if defined(_LIBCPP_ABI_MICROSOFT)
+#include <vcruntime_typeinfo.h>
+#elif defined(_LIBCPP_NONUNIQUE_RTTI_BIT)
#define _LIBCPP_HAS_NONUNIQUE_TYPEINFO
#else
#define _LIBCPP_HAS_UNIQUE_TYPEINFO
@@ -78,6 +80,7 @@ public:
namespace std // purposefully not using versioning namespace
{
+#if !defined(_LIBCPP_ABI_MICROSOFT)
class _LIBCPP_EXCEPTION_ABI type_info
{
type_info& operator=(const type_info&);
@@ -187,6 +190,8 @@ public:
virtual const char* what() const _NOEXCEPT;
};
+#endif // !_LIBCPP_ABI_MICROSOFT
+
} // std
_LIBCPP_BEGIN_NAMESPACE_STD
OpenPOWER on IntegriCloud