Home | History | Annotate | Download | only in Windows
      1 // RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t
      2 // RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll
      3 // RUN: %run %t %t.dll | FileCheck %s
      4 
      5 #include <malloc.h>
      6 #include <stdio.h>
      7 
      8 #define CHECK_ALIGNED(ptr,alignment) \
      9   do { \
     10     if (((uintptr_t)(ptr) % (alignment)) != 0) \
     11       return __LINE__; \
     12     } \
     13   while(0)
     14 
     15 extern "C" __declspec(dllexport)
     16 int test_function() {
     17   int *p = (int*)_aligned_malloc(1024 * sizeof(int), 32);
     18   CHECK_ALIGNED(p, 32);
     19   p[512] = 0;
     20   _aligned_free(p);
     21 
     22   p = (int*)_aligned_malloc(128, 128);
     23   CHECK_ALIGNED(p, 128);
     24   p = (int*)_aligned_realloc(p, 2048 * sizeof(int), 128);
     25   CHECK_ALIGNED(p, 128);
     26   p[1024] = 0;
     27   if (_aligned_msize(p, 128, 0) != 2048 * sizeof(int))
     28     return __LINE__;
     29   _aligned_free(p);
     30 
     31   printf("All ok\n");
     32 // CHECK: All ok
     33   return 0;
     34 }
     35