diff options
author | Nick Kledzik <kledzik@apple.com> | 2010-09-10 20:42:36 +0000 |
---|---|---|
committer | Nick Kledzik <kledzik@apple.com> | 2010-09-10 20:42:36 +0000 |
commit | d1d6f2ca46ad7e21494373b73acee3a03ecf132d (patch) | |
tree | 9ff90b98381bee54c5fd5a6b657ad0324bac8e06 /libcxx/src/typeinfo.cpp | |
parent | 55165fed5d2b5cd00517b2905a4aeb766fc023ee (diff) | |
download | bcm5719-llvm-d1d6f2ca46ad7e21494373b73acee3a03ecf132d.tar.gz bcm5719-llvm-d1d6f2ca46ad7e21494373b73acee3a03ecf132d.zip |
<rdar://problem/8279559> [libstdcxx] use new linker options to make symbols non-weak
llvm-svn: 113616
Diffstat (limited to 'libcxx/src/typeinfo.cpp')
-rw-r--r-- | libcxx/src/typeinfo.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libcxx/src/typeinfo.cpp b/libcxx/src/typeinfo.cpp index 931855b3665..17f725c684e 100644 --- a/libcxx/src/typeinfo.cpp +++ b/libcxx/src/typeinfo.cpp @@ -7,6 +7,7 @@ // //===----------------------------------------------------------------------===// #include <stdlib.h> +#include <cxxabi.h> #include "typeinfo" @@ -37,3 +38,11 @@ std::bad_typeid::what() const throw() { return "std::bad_typeid"; } + +#if __APPLE__ + // 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() { throw std::bad_typeid(); } + void __cxxabiv1::__cxa_bad_cast() { throw std::bad_cast(); } +#endif + |