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


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@287388 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Fiselier
2016-11-18 22:25:41 +00:00
parent 0252201f9e
commit c044b03d26

View File

@@ -316,6 +316,8 @@ bad_array_new_length::bad_array_new_length() _NOEXCEPT
{ {
} }
#ifndef __GLIBCXX__
bad_array_new_length::~bad_array_new_length() _NOEXCEPT bad_array_new_length::~bad_array_new_length() _NOEXCEPT
{ {
} }
@@ -326,21 +328,27 @@ bad_array_new_length::what() const _NOEXCEPT
return "bad_array_new_length"; return "bad_array_new_length";
} }
#endif // !__GLIBCXX__
#endif //LIBCXXRT #endif //LIBCXXRT
bad_array_length::bad_array_length() _NOEXCEPT
{
}
#ifndef __GLIBCXX__
bad_array_length::~bad_array_length() _NOEXCEPT
{
}
const char* const char*
bad_array_length::what() const _NOEXCEPT bad_array_length::what() const _NOEXCEPT
{ {
return "bad_array_length"; return "bad_array_length";
} }
bad_array_length::bad_array_length() _NOEXCEPT #endif // !__GLIBCXX__
{
}
bad_array_length::~bad_array_length() _NOEXCEPT
{
}
#endif // _LIBCPPABI_VERSION #endif // _LIBCPPABI_VERSION