1*673dc3d4SNico Weber // RUN: %clang_cl_asan -Od %s -Fe%t
2*673dc3d4SNico Weber // RUN: %run %t | FileCheck %s
3*673dc3d4SNico Weber 
4*673dc3d4SNico Weber #include <malloc.h>
5*673dc3d4SNico Weber #include <stdio.h>
6*673dc3d4SNico Weber 
main()7*673dc3d4SNico Weber int main() {
8*673dc3d4SNico Weber   int *p = (int*)malloc(1024 * sizeof(int));
9*673dc3d4SNico Weber   p[512] = 0;
10*673dc3d4SNico Weber   free(p);
11*673dc3d4SNico Weber 
12*673dc3d4SNico Weber   p = (int*)malloc(128);
13*673dc3d4SNico Weber   p = (int*)realloc(p, 2048 * sizeof(int));
14*673dc3d4SNico Weber   p[1024] = 0;
15*673dc3d4SNico Weber   free(p);
16*673dc3d4SNico Weber 
17*673dc3d4SNico Weber   p = (int*)calloc(16, sizeof(int));
18*673dc3d4SNico Weber   if (p[8] != 0)
19*673dc3d4SNico Weber     return 1;
20*673dc3d4SNico Weber   p[15]++;
21*673dc3d4SNico Weber   if (16 * sizeof(int) != _msize(p))
22*673dc3d4SNico Weber     return 2;
23*673dc3d4SNico Weber   free(p);
24*673dc3d4SNico Weber 
25*673dc3d4SNico Weber   p = new int;
26*673dc3d4SNico Weber   *p = 42;
27*673dc3d4SNico Weber   delete p;
28*673dc3d4SNico Weber 
29*673dc3d4SNico Weber   p = new int[42];
30*673dc3d4SNico Weber   p[15]++;
31*673dc3d4SNico Weber   delete [] p;
32*673dc3d4SNico Weber 
33*673dc3d4SNico Weber   printf("All ok\n");
34*673dc3d4SNico Weber // CHECK: All ok
35*673dc3d4SNico Weber 
36*673dc3d4SNico Weber   return 0;
37*673dc3d4SNico Weber }
38