[gcc(refs/vendors/ibm/heads/gcc-7-branch)] PR libstdc++/92143 adjust for OS X aligned_alloc behaviour
Peter Bergner
bergner@gcc.gnu.org
Fri Feb 7 20:37:00 GMT 2020
https://gcc.gnu.org/g:474aa6a4fda4d9f3bae339e379987a5a2f565007
commit 474aa6a4fda4d9f3bae339e379987a5a2f565007
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Thu Oct 24 16:31:00 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: r277414
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 b51beb4..1cad1c5 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-10-08 Jonathan Wakely <jwakely@redhat.com>
* doc/Makefile.am (doc-html-docbook-regenerate): New target.
diff --git a/libstdc++-v3/libsupc++/new_opa.cc b/libstdc++-v3/libsupc++/new_opa.cc
index 94e79ca..d746122 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