17#if defined(_WIN32) || defined(__CYGWIN__)
22static inline void* aligned_alloc_xp(
size_t alignment,
size_t size) {
24 if ((alignment & (alignment - 1)) != 0 || alignment <
sizeof(
void*)) {
28#if defined(_WIN32) || defined(__CYGWIN__)
29 return _aligned_malloc(size, alignment);
33#if __STDC_VERSION__ >= 201112L
34 return aligned_alloc(alignment, size);
38 if (posix_memalign(&ptr, alignment, size) != 0) {
47static inline void aligned_free_xp(
void* ptr) {
48#if defined(_WIN32) || defined(__CYGWIN__)
55#define ALIGNED_ALLOC(alignment, size) aligned_alloc_xp(alignment, size)
56#define ALIGNED_FREE(ptr) aligned_free_xp(ptr)