diff options
| author | Howard Hinnant <hhinnant@apple.com> | 2012-01-24 21:48:10 +0000 |
|---|---|---|
| committer | Howard Hinnant <hhinnant@apple.com> | 2012-01-24 21:48:10 +0000 |
| commit | 7fdfd5d2695f537915cc1000044d97086a2d2115 (patch) | |
| tree | 3fc8e9f0235ac4415f74872818ee8e9f95c6a86d /libcxxabi/src | |
| parent | 35bc8f915923904a38827f103c0403a8e3a70dfb (diff) | |
| download | bcm5719-llvm-7fdfd5d2695f537915cc1000044d97086a2d2115.tar.gz bcm5719-llvm-7fdfd5d2695f537915cc1000044d97086a2d2115.zip | |
Add some needed symbols in exception.cpp and eliminate dependence upon uncaught_exception() from cxa_vector.cpp. libc++abi is very nearly a self-contained (though not complete) library now.
llvm-svn: 148866
Diffstat (limited to 'libcxxabi/src')
| -rw-r--r-- | libcxxabi/src/cxa_vector.cpp | 2 | ||||
| -rw-r--r-- | libcxxabi/src/exception.cpp | 41 |
2 files changed, 42 insertions, 1 deletions
diff --git a/libcxxabi/src/cxa_vector.cpp b/libcxxabi/src/cxa_vector.cpp index 67ecc243142..926c01dd349 100644 --- a/libcxxabi/src/cxa_vector.cpp +++ b/libcxxabi/src/cxa_vector.cpp @@ -258,7 +258,7 @@ void __cxa_vec_dtor( size_t idx = element_count; st_cxa_cleanup cleanup ( array_address, idx, element_size, destructor ); { - st_terminate exception_guard (std::uncaught_exception ()); + st_terminate exception_guard (__cxa_uncaught_exception ()); ptr += element_count * element_size; // one past the last element while ( idx-- > 0 ) { diff --git a/libcxxabi/src/exception.cpp b/libcxxabi/src/exception.cpp new file mode 100644 index 00000000000..c47a9b76266 --- /dev/null +++ b/libcxxabi/src/exception.cpp @@ -0,0 +1,41 @@ +//===---------------------------- exception.cpp ---------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include <exception> + +#pragma GCC visibility push(default) + +namespace std +{ + +// exception + +exception::~exception() _NOEXCEPT +{ +} + +const char* exception::what() const _NOEXCEPT +{ + return "std::exception"; +} + +// bad_exception + +bad_exception::~bad_exception() _NOEXCEPT +{ +} + +const char* bad_exception::what() const _NOEXCEPT +{ + return "std::bad_exception"; +} + +} // std + +#pragma GCC visibility pop |

