diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2019-06-17 16:51:31 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2019-06-17 16:51:31 +0100 |
commit | 39f901e918c42935d1acf5ad87b79ae1b38a666b (patch) | |
tree | 4448e0e52ce54200776d754e84f785b44a97c6d2 | |
parent | 35d57c957268c29056192f312c279fb08b4af0ea (diff) | |
download | gcc-39f901e918c42935d1acf5ad87b79ae1b38a666b.zip gcc-39f901e918c42935d1acf5ad87b79ae1b38a666b.tar.gz gcc-39f901e918c42935d1acf5ad87b79ae1b38a666b.tar.bz2 |
Fix AIX test failure due to replacement operator delete
On AIX the sized delete defined in the library will call the non-sized
delete defined in the library, not the replacement version defined in
the test file. By also replacing sized delete we make the test pass
everywhere.
* testsuite/20_util/allocator/1.cc: Add sized delete, which fixes a
failure on AIX.
From-SVN: r272391
-rw-r--r-- | libstdc++-v3/ChangeLog | 3 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/20_util/allocator/1.cc | 15 |
2 files changed, 17 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 8311111..40d1b0b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,8 @@ 2019-06-17 Jonathan Wakely <jwakely@redhat.com> + * testsuite/20_util/allocator/1.cc: Add sized delete, which fixes a + failure on AIX. + * include/c_global/cmath (__lerp, lerp): Add noexcept (LWG 3201). PR libstdc++/90281 Fix string conversions for filesystem::path diff --git a/libstdc++-v3/testsuite/20_util/allocator/1.cc b/libstdc++-v3/testsuite/20_util/allocator/1.cc index 8ea0895..c8a74da 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/1.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/1.cc @@ -24,6 +24,12 @@ #include <cstdlib> #include <testsuite_hooks.h> +#if __cplusplus >= 201103L +# define NOTHROW noexcept +#else +# define NOTHROW throw() +#endif + struct gnu { }; bool check_new = false; @@ -36,12 +42,19 @@ operator new(std::size_t n) THROW(std::bad_alloc) return std::malloc(n); } -void operator delete(void *v) throw() +void operator delete(void *v) NOTHROW { check_delete = true; return std::free(v); } +#if __cpp_sized_deallocation +void operator delete(void *v, std::size_t) NOTHROW +{ + ::operator delete(v); +} +#endif + void test01() { std::allocator<gnu> obj; |