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
} };
15 omp_allocator_handle_t a
;
17 volatile size_t large_sz
;
19 a
= omp_init_allocator (omp_default_mem_space
,
20 sizeof (traits
) / sizeof (traits
[0]),
22 if (a
== omp_null_allocator
)
24 p
= omp_alloc (2048, a
);
25 if ((((uintptr_t) p
) % 16) != 0)
27 large_sz
= ~(size_t) 1023;
28 q
= omp_alloc (large_sz
, a
);
31 q
= omp_aligned_alloc (32, large_sz
, a
);
34 q
= omp_calloc (large_sz
/ 4, 4, a
);
37 q
= omp_aligned_calloc (1, 2, large_sz
/ 2, a
);
41 large_sz
= ~(size_t) 0;
44 if (omp_calloc (2, large_sz
, a
) != NULL
)
46 if (omp_calloc (large_sz
, 1024, a
) != NULL
)
48 if (omp_calloc (large_sz
, large_sz
, a
) != NULL
)
50 if (omp_aligned_calloc (16, 2, large_sz
, a
) != NULL
)
52 if (omp_aligned_calloc (32, large_sz
, 1024, a
) != NULL
)
54 if (omp_aligned_calloc (64, large_sz
, large_sz
, a
) != NULL
)
56 omp_destroy_allocator (a
);