Commit 15abd932 by Jonathan Wakely Committed by Jonathan Wakely

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.

	PR libstdc++/92143
	* libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment
	to at least sizeof(void*).

From-SVN: r277151
parent 7e4b7d7b
2019-10-18 Jonathan Wakely <jwakely@redhat.com> 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*).
* include/bits/range_cmp.h (ranges::less::operator()): Inline the * include/bits/range_cmp.h (ranges::less::operator()): Inline the
logic from std::less::operator() to remove the dependency on it. logic from std::less::operator() to remove the dependency on it.
......
...@@ -108,9 +108,10 @@ operator new (std::size_t sz, std::align_val_t al) ...@@ -108,9 +108,10 @@ operator new (std::size_t sz, std::align_val_t al)
sz = 1; sz = 1;
#if _GLIBCXX_HAVE_ALIGNED_ALLOC #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 /* 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*)) if (align < sizeof(void*))
align = sizeof(void*); align = sizeof(void*);
# endif # endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment