| // UNSUPPORTED: target={{.*-windows-gnu}} |
| |
| // RUN: %clang_cl_asan -Od %p/dll_host.cpp -Fe%t |
| // RUN: %clang_cl_asan -LD -Od %s -Fe%t.dll |
| // RUN: %run %t %t.dll | FileCheck %s |
| |
| #include <malloc.h> |
| #include <stdio.h> |
| |
| extern "C" __declspec(dllexport) |
| int test_function() { |
| int *p = (int*)malloc(1024 * sizeof(int)); |
| p[512] = 0; |
| free(p); |
| |
| p = (int*)malloc(128); |
| p = (int*)realloc(p, 2048 * sizeof(int)); |
| p[1024] = 0; |
| free(p); |
| |
| p = (int*)calloc(16, sizeof(int)); |
| if (p[8] != 0) |
| return 1; |
| p[15]++; |
| if (16 * sizeof(int) != _msize(p)) |
| return 2; |
| free(p); |
| |
| p = new int; |
| *p = 42; |
| delete p; |
| |
| p = new int[42]; |
| p[15]++; |
| delete [] p; |
| |
| printf("All ok\n"); |
| // CHECK: All ok |
| |
| return 0; |
| } |