libgomp: Don't define GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC for _aligned_malloc [PR105745]
authorJakub Jelinek <jakub@redhat.com>
Sat, 28 May 2022 06:30:47 +0000 (08:30 +0200)
committerJakub Jelinek <jakub@redhat.com>
Sat, 28 May 2022 06:30:47 +0000 (08:30 +0200)
commit42fd2cd932384288914174f4af7974a060972bff
treec75407921fbb7f736115c8f6e2ce4b32ddaeaa2f
parent931249276acb4bdab778fe2bf4e81a1a31a78e6c
libgomp: Don't define GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC for _aligned_malloc [PR105745]

since apparently _aligned_malloc requires freeing with _aligned_free and:
 /* Defined if gomp_aligned_alloc doesn't use fallback version
    and free can be used instead of gomp_aligned_free.  */
 #define GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC 1
so the second condition isn't satisfied.  For uses inside of the OpenMP
allocators we can still use _aligned_malloc but we need to call _aligned_free
in gomp_aligned_free.

2022-05-28  Jakub Jelinek  <jakub@redhat.com>

PR libgomp/105745
* libgomp.h (GOMP_HAVE_EFFICIENT_ALIGNED_ALLOC): Don't define for
defined(HAVE__ALIGNED_MALLOC) case.
* alloc.c (gomp_aligned_alloc): Move defined(HAVE__ALIGNED_MALLOC)
handling as last option before fallback instead of first.
(gomp_aligned_free): For defined(HAVE__ALIGNED_MALLOC) call
_aligned_free.
libgomp/alloc.c
libgomp/libgomp.h