From f37b9e32f7498e0f8bb287aae19cfc3e8efd4cab Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 24 Oct 2019 13:54:44 +0100 Subject: [PATCH] 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 PR libstdc++/92143 * libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment to at least sizeof(void*). From-SVN: r277386 --- 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 ca192d1bd63d..00cab7704174 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,12 @@ 2019-10-24 Jonathan Wakely + Backport from mainline + 2019-10-18 Jonathan Wakely + + 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 diff --git a/libstdc++-v3/libsupc++/new_opa.cc b/libstdc++-v3/libsupc++/new_opa.cc index 0303ecde6bd9..8143c129bc62 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 -- 2.47.2