summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-11-18 22:25:41 +0000
committerEric Fiselier <eric@efcs.ca>2016-11-18 22:25:41 +0000
commit194e81f62039d415f58fd543b6d751bbf116d9d1 (patch)
tree7b3da926bb933b8624dc16a9abf605d0321c91bb
parente40900dddd84ac77bd626564e0aec0d195c365b1 (diff)
downloadbcm5719-llvm-194e81f62039d415f58fd543b6d751bbf116d9d1.tar.gz
bcm5719-llvm-194e81f62039d415f58fd543b6d751bbf116d9d1.zip
Allow using libsupc++ with LIBCXX_ENABLE_STATIC_ABI_LIBRARY. Patch from Michael Daniels.
The code cannot currently link when using libsupc++ with the LIBCXX_ENABLE_STATIC_ABI_LIBRARY option. This change ifdef's out the the destructor and 'what' function for bad_array_length and bad_array_new_length when GLIBCXX is defined. The constructors that are left in are the only functions not being provided by libsupc++ itself, and follows the same pattern that was used to ifdef bad_alloc. Testing was done on a Linux x86_64 host using GCC 5.4 and libc++ from ToT. I see no change to the test results when using libsup++ or libstdc++ without LIBCXX_ENABLE_STATIC_ABI_LIBRARY. When using libsupc++ with LIBCXX_ENABLE_STATIC_ABI_LIBRARY it will now build and test results are the same as those without the option specified. Reviewed as https://reviews.llvm.org/D26186 llvm-svn: 287388
-rw-r--r--libcxx/src/new.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/libcxx/src/new.cpp b/libcxx/src/new.cpp
index e52edbd4ddc..1465bcd5f91 100644
--- a/libcxx/src/new.cpp
+++ b/libcxx/src/new.cpp
@@ -316,6 +316,8 @@ bad_array_new_length::bad_array_new_length() _NOEXCEPT
{
}
+#ifndef __GLIBCXX__
+
bad_array_new_length::~bad_array_new_length() _NOEXCEPT
{
}
@@ -326,22 +328,28 @@ bad_array_new_length::what() const _NOEXCEPT
return "bad_array_new_length";
}
+#endif // !__GLIBCXX__
+
#endif //LIBCXXRT
-const char*
-bad_array_length::what() const _NOEXCEPT
+bad_array_length::bad_array_length() _NOEXCEPT
{
- return "bad_array_length";
}
-bad_array_length::bad_array_length() _NOEXCEPT
+#ifndef __GLIBCXX__
+
+bad_array_length::~bad_array_length() _NOEXCEPT
{
}
-bad_array_length::~bad_array_length() _NOEXCEPT
+const char*
+bad_array_length::what() const _NOEXCEPT
{
+ return "bad_array_length";
}
+#endif // !__GLIBCXX__
+
#endif // _LIBCPPABI_VERSION
#ifndef LIBSTDCXX
OpenPOWER on IntegriCloud