15d71de26cedae3dafc17449fe0182045c0bd20e8Stephen Hines// RUN: %clang_cl_asan -O0 %s -Fe%t
22d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// RUN: %run %t | FileCheck %s
32d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
42d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#include <malloc.h>
52d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#include <stdio.h>
62d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
72d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesint main() {
82d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  int *p = (int*)malloc(1024 * sizeof(int));
92d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  p[512] = 0;
102d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  free(p);
112d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
122d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  p = (int*)malloc(128);
132d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  p = (int*)realloc(p, 2048 * sizeof(int));
142d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  p[1024] = 0;
152d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  free(p);
162d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
172d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  p = (int*)calloc(16, sizeof(int));
182d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (p[8] != 0)
192d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    return 1;
202d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  p[15]++;
212d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  if (16 * sizeof(int) != _msize(p))
222d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    return 2;
232d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  free(p);
242d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
252d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  p = new int;
262d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  *p = 42;
272d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  delete p;
282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
292d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  p = new int[42];
302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  p[15]++;
312d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  delete [] p;
322d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
332d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  printf("All ok\n");
342d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// CHECK: All ok
352d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
362d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines  return 0;
372d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines}
38