diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-11-18 22:25:41 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-11-18 22:25:41 +0000 |
commit | 194e81f62039d415f58fd543b6d751bbf116d9d1 (patch) | |
tree | 7b3da926bb933b8624dc16a9abf605d0321c91bb | |
parent | e40900dddd84ac77bd626564e0aec0d195c365b1 (diff) | |
download | bcm5719-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.cpp | 18 |
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 |