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
This commit is contained in:
Jonathan Wakely 2019-10-18 12:27:31 +01:00 committed by Jonathan Wakely
parent 7e4b7d7bac
commit 15abd9320d
2 changed files with 7 additions and 2 deletions

View File

@ -1,5 +1,9 @@
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
logic from std::less::operator() to remove the dependency on it.

View File

@ -108,9 +108,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