(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c-c++-common/
alloc-6.c
       1  #include <omp.h>
       2  #include <stdint.h>
       3  #include <stdlib.h>
       4  
       5  const omp_alloctrait_t traits[]
       6  = { { omp_atk_alignment, 16 },
       7      { omp_atk_sync_hint, omp_atv_default },
       8      { omp_atk_access, omp_atv_default },
       9      { omp_atk_fallback, omp_atv_default_mem_fb },
      10      { omp_atk_partition, omp_atv_environment } };
      11  
      12  int
      13  main ()
      14  {
      15    omp_allocator_handle_t a;
      16    void *p, *q;
      17    volatile size_t large_sz;
      18  
      19    a = omp_init_allocator (omp_default_mem_space,
      20  			  sizeof (traits) / sizeof (traits[0]),
      21  			  traits);
      22    if (a == omp_null_allocator)
      23      abort ();
      24    p = omp_alloc (2048, a);
      25    if ((((uintptr_t) p) % 16) != 0)
      26      abort ();
      27    large_sz = ~(size_t) 1023;
      28    q = omp_alloc (large_sz, a);
      29    if (q != NULL)
      30      abort ();
      31    q = omp_aligned_alloc (32, large_sz, a);
      32    if (q != NULL)
      33      abort ();
      34    q = omp_calloc (large_sz / 4, 4, a);
      35    if (q != NULL)
      36      abort ();
      37    q = omp_aligned_calloc (1, 2, large_sz / 2, a);
      38    if (q != NULL)
      39      abort ();
      40    omp_free (p, a);
      41    large_sz = ~(size_t) 0;
      42    large_sz >>= 1;
      43    large_sz += 1;
      44    if (omp_calloc (2, large_sz, a) != NULL)
      45      abort ();
      46    if (omp_calloc (large_sz, 1024, a) != NULL)
      47      abort ();
      48    if (omp_calloc (large_sz, large_sz, a) != NULL)
      49      abort ();
      50    if (omp_aligned_calloc (16, 2, large_sz, a) != NULL)
      51      abort ();
      52    if (omp_aligned_calloc (32, large_sz, 1024, a) != NULL)
      53      abort ();
      54    if (omp_aligned_calloc (64, large_sz, large_sz, a) != NULL)
      55      abort ();
      56    omp_destroy_allocator (a);
      57    return 0;
      58  }