aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2014-10-21 10:19:45 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2014-10-21 10:19:45 +0000
commit726f4cd5807a07fba79130246b91d296397f4a9b (patch)
tree22b9a22aeb5f9b38f609801d107efeb6e148994b
parent8b62915e24d271b9e3a28f396bb54c76a764762b (diff)
downloadsrc-726f4cd5807a07fba79130246b91d296397f4a9b.tar.gz
src-726f4cd5807a07fba79130246b91d296397f4a9b.zip
Notes
-rw-r--r--contrib/libcxxrt/auxhelper.cc5
-rw-r--r--contrib/libcxxrt/stdexcept.cc8
-rw-r--r--contrib/libcxxrt/stdexcept.h9
-rw-r--r--lib/libcxxrt/Version.map9
4 files changed, 31 insertions, 0 deletions
diff --git a/contrib/libcxxrt/auxhelper.cc b/contrib/libcxxrt/auxhelper.cc
index 213f8a0890f7..3e98da036a11 100644
--- a/contrib/libcxxrt/auxhelper.cc
+++ b/contrib/libcxxrt/auxhelper.cc
@@ -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();
+}
diff --git a/contrib/libcxxrt/stdexcept.cc b/contrib/libcxxrt/stdexcept.cc
index 687fc5e7532b..74a7fe593fd9 100644
--- a/contrib/libcxxrt/stdexcept.cc
+++ b/contrib/libcxxrt/stdexcept.cc
@@ -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
diff --git a/contrib/libcxxrt/stdexcept.h b/contrib/libcxxrt/stdexcept.h
index 49eaf55c37a2..1aa54591b0ff 100644
--- a/contrib/libcxxrt/stdexcept.h
+++ b/contrib/libcxxrt/stdexcept.h
@@ -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
diff --git a/lib/libcxxrt/Version.map b/lib/libcxxrt/Version.map
index a97c66fe8a1b..b9e4cf90ed9f 100644
--- a/lib/libcxxrt/Version.map
+++ b/lib/libcxxrt/Version.map
@@ -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;