Add support for __cxa_throw_bad_array_new_length in libcxxrt
It is required for use with newer g++49 Differential Revision: https://reviews.freebsd.org/D982 Reviewed by: theraven Approved by: theraven MFC after: 3 weeks
This commit is contained in:
parent
8b62915e24
commit
726f4cd580
@ -75,3 +75,8 @@ extern "C" void __cxa_deleted_virtual()
|
||||
{
|
||||
abort();
|
||||
}
|
||||
|
||||
extern "C" void __cxa_throw_bad_array_new_length()
|
||||
{
|
||||
throw std::bad_array_new_length();
|
||||
}
|
||||
|
@ -82,5 +82,13 @@ const char* bad_typeid::what() const throw()
|
||||
return "std::bad_typeid";
|
||||
}
|
||||
|
||||
bad_array_new_length::bad_array_new_length() throw() {}
|
||||
bad_array_new_length::~bad_array_new_length() {}
|
||||
bad_array_new_length::bad_array_new_length(const bad_array_new_length&) throw() {}
|
||||
bad_array_new_length& bad_array_new_length::operator=(const bad_array_new_length&) throw()
|
||||
{
|
||||
return *this;
|
||||
}
|
||||
|
||||
} // namespace std
|
||||
|
||||
|
@ -81,6 +81,15 @@ namespace std
|
||||
virtual const char* what() const throw();
|
||||
};
|
||||
|
||||
class bad_array_new_length: public exception
|
||||
{
|
||||
public:
|
||||
bad_array_new_length() throw();
|
||||
bad_array_new_length(const bad_array_new_length&) throw();
|
||||
bad_array_new_length& operator=(const bad_array_new_length&) throw();
|
||||
virtual ~bad_array_new_length();
|
||||
virtual const char *what() const throw();
|
||||
};
|
||||
|
||||
|
||||
} // namespace std
|
||||
|
@ -26,6 +26,7 @@ CXXABI_1.3 {
|
||||
__cxa_pure_virtual;
|
||||
__cxa_rethrow;
|
||||
__cxa_throw;
|
||||
__cxa_throw_bad_array_new_length;
|
||||
__cxa_type_match;
|
||||
__cxa_vec_cctor;
|
||||
__cxa_vec_cleanup;
|
||||
@ -273,6 +274,9 @@ CXXRT_1.0 {
|
||||
"std::bad_alloc::bad_alloc(std::bad_alloc const&)";
|
||||
"std::bad_alloc::bad_alloc()";
|
||||
"std::bad_alloc::operator=(std::bad_alloc const&)";
|
||||
"std::bad_array_new_length::bad_array_new_length(std::bad_array_new_length const&)";
|
||||
"std::bad_array_new_length::bad_array_new_length()";
|
||||
"std::bad_array_new_length::operator=(std::bad_array_new_length const&)";
|
||||
|
||||
};
|
||||
__cxa_allocate_dependent_exception;
|
||||
@ -307,6 +311,7 @@ GLIBCXX_3.4 {
|
||||
"std::bad_typeid::~bad_typeid()";
|
||||
"std::exception::~exception()";
|
||||
"std::bad_alloc::~bad_alloc()";
|
||||
"std::bad_array_new_length::~bad_array_new_length()";
|
||||
|
||||
"std::exception::what() const";
|
||||
|
||||
@ -320,17 +325,20 @@ GLIBCXX_3.4 {
|
||||
"vtable for std::bad_typeid";
|
||||
"vtable for std::exception";
|
||||
"vtable for std::type_info";
|
||||
"vtable for std::bad_array_new_length";
|
||||
|
||||
"typeinfo for std::bad_alloc";
|
||||
"typeinfo for std::bad_typeid";
|
||||
"typeinfo for std::bad_cast";
|
||||
"typeinfo for std::exception";
|
||||
"typeinfo for std::type_info";
|
||||
"typeinfo for std::bad_array_new_length";
|
||||
"typeinfo name for std::bad_alloc";
|
||||
"typeinfo name for std::bad_typeid";
|
||||
"typeinfo name for std::bad_cast";
|
||||
"typeinfo name for std::exception";
|
||||
"typeinfo name for std::type_info";
|
||||
"typeinfo name for std::bad_array_new_length";
|
||||
|
||||
};
|
||||
};
|
||||
@ -340,6 +348,7 @@ GLIBCXX_3.4.9 {
|
||||
"std::bad_typeid::what() const";
|
||||
"std::bad_cast::what() const";
|
||||
"std::bad_alloc::what() const";
|
||||
"std::bad_array_new_length::what() const";
|
||||
};
|
||||
} GLIBCXX_3.4;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user