[gcc(refs/vendors/ibm/heads/gcc-9-branch)] PR libstdc++/92143 adjust for OS X aligned_alloc behaviour
Peter Bergner
bergner@gcc.gnu.org
Tue Feb 4 22:03:00 GMT 2020
https://gcc.gnu.org/g:f37b9e32f7498e0f8bb287aae19cfc3e8efd4cab
commit f37b9e32f7498e0f8bb287aae19cfc3e8efd4cab
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Thu Oct 24 13:54:44 2019 +0100
PR libstdc++/92143 adjust for OS X aligned_alloc behaviour
OS X 10.15 adds aligned_alloc but it has the same restriction as the AIX
version, namely that alignments smaller than sizeof(void*) are not
supported.
Backport from mainline
2019-10-18 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/92143
* libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment
to at least sizeof(void*).
From-SVN: r277386
Diff:
---
libstdc++-v3/ChangeLog | 7 +++++++
libstdc++-v3/libsupc++/new_opa.cc | 5 +++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ca192d1..00cab77 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,6 +1,13 @@
2019-10-24 Jonathan Wakely <jwakely@redhat.com>
Backport from mainline
+ 2019-10-18 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/92143
+ * libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment
+ to at least sizeof(void*).
+
+ Backport from mainline
2019-06-06 Jonathan Wakely <jwakely@redhat.com>
* testsuite/23_containers/unordered_map/requirements/debug_container.cc:
diff --git a/libstdc++-v3/libsupc++/new_opa.cc b/libstdc++-v3/libsupc++/new_opa.cc
index 0303ecd..8143c12 100644
--- a/libstdc++-v3/libsupc++/new_opa.cc
+++ b/libstdc++-v3/libsupc++/new_opa.cc
@@ -114,9 +114,10 @@ operator new (std::size_t sz, std::align_val_t al)
sz = 1;
#if _GLIBCXX_HAVE_ALIGNED_ALLOC
-# ifdef _AIX
+# if defined _AIX || defined __APPLE__
/* AIX 7.2.0.0 aligned_alloc incorrectly has posix_memalign's requirement
- * that alignment is a multiple of sizeof(void*). */
+ * that alignment is a multiple of sizeof(void*).
+ * OS X 10.15 has the same requirement. */
if (align < sizeof(void*))
align = sizeof(void*);
# endif
More information about the Libstdc++-cvs
mailing list