16a211c5814e25d6745a5058cc0e499e5235d3821Stephen 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