mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
openmp: omp_alloc(0, ...) should return NULL.
2020-05-30 Jakub Jelinek <jakub@redhat.com> * allocator.c (omp_alloc): For size == 0, return NULL early. * testsuite/libgomp.c-c++-common/alloc-4.c: New test.
This commit is contained in:
@@ -201,6 +201,9 @@ omp_alloc (size_t size, omp_allocator_handle_t allocator)
|
||||
size_t alignment, new_size;
|
||||
void *ptr, *ret;
|
||||
|
||||
if (__builtin_expect (size == 0, 0))
|
||||
return NULL;
|
||||
|
||||
retry:
|
||||
if (allocator == omp_null_allocator)
|
||||
{
|
||||
|
||||
25
libgomp/testsuite/libgomp.c-c++-common/alloc-4.c
Normal file
25
libgomp/testsuite/libgomp.c-c++-common/alloc-4.c
Normal file
@@ -0,0 +1,25 @@
|
||||
#include <omp.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
const omp_alloctrait_t traits[]
|
||||
= { { omp_atk_pool_size, 1 },
|
||||
{ omp_atk_fallback, omp_atv_abort_fb } };
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
omp_allocator_handle_t a;
|
||||
|
||||
if (omp_alloc (0, omp_null_allocator) != NULL)
|
||||
abort ();
|
||||
a = omp_init_allocator (omp_default_mem_space, 2, traits);
|
||||
if (a != omp_null_allocator)
|
||||
{
|
||||
if (omp_alloc (0, a) != NULL
|
||||
|| omp_alloc (0, a) != NULL
|
||||
|| omp_alloc (0, a) != NULL)
|
||||
abort ();
|
||||
omp_destroy_allocator (a);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user