// RUN: %clang_cl_asan -O0 %p/dll_host.cc -Fe%t // RUN: %clang_cl_asan -LD -O0 %s -Fe%t.dll // RUN: %run %t %t.dll | FileCheck %s #include <malloc.h> #include <stdio.h> #define CHECK_ALIGNED(ptr,alignment) \ do { \ if (((uintptr_t)(ptr) % (alignment)) != 0) \ return __LINE__; \ } \ while(0) extern "C" __declspec(dllexport) int test_function() { int *p = (int*)_aligned_malloc(1024 * sizeof(int), 32); CHECK_ALIGNED(p, 32); p[512] = 0; _aligned_free(p); p = (int*)_aligned_malloc(128, 128); CHECK_ALIGNED(p, 128); p = (int*)_aligned_realloc(p, 2048 * sizeof(int), 128); CHECK_ALIGNED(p, 128); p[1024] = 0; if (_aligned_msize(p, 128, 0) != 2048 * sizeof(int)) return __LINE__; _aligned_free(p); printf("All ok\n"); // CHECK: All ok return 0; }