1 // RUN: %clang_cl_asan -Od %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 
main(void)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