1 // RUN: %clang_cl_asan -O0 %s -Fe%t 2 // RUN: %run %t 3 4 #include <windows.h> 5 6 #define CHECK_ALIGNED(ptr,alignment) \ 7 do { \ 8 if (((uintptr_t)(ptr) % (alignment)) != 0) \ 9 return __LINE__; \ 10 } \ 11 while(0) 12 13 int main(void) { 14 int *p = (int*)_aligned_malloc(1024 * sizeof(int), 32); 15 CHECK_ALIGNED(p, 32); 16 p[512] = 0; 17 _aligned_free(p); 18 19 p = (int*)_aligned_malloc(128, 128); 20 CHECK_ALIGNED(p, 128); 21 p = (int*)_aligned_realloc(p, 2048 * sizeof(int), 128); 22 CHECK_ALIGNED(p, 128); 23 p[1024] = 0; 24 if (_aligned_msize(p, 128, 0) != 2048 * sizeof(int)) 25 return __LINE__; 26 _aligned_free(p); 27 28 return 0; 29 } 30