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
This commit is contained in:
Howard Hinnant 2012-01-24 21:48:10 +00:00
parent 35bc8f9159
commit 7fdfd5d269
2 changed files with 42 additions and 1 deletions

View File

@ -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 ) {

View File

@ -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