1*11b41446SVitaly Buka // Workaround for "LINK : fatal error LNK1318: Unexpected PDB error" 2*11b41446SVitaly Buka // RUN: rm -f %t.pdb 3*11b41446SVitaly Buka 4673dc3d4SNico Weber // RUN: %clang_cl_asan %s -o %t.exe 5673dc3d4SNico Weber // RUN: %run %t.exe 2>&1 | FileCheck %s 6673dc3d4SNico Weber // RUN: %clang_cl %s -o %t.exe 7673dc3d4SNico Weber // RUN: %run %t.exe 2>&1 | FileCheck %s 8673dc3d4SNico Weber 9673dc3d4SNico Weber #include <cassert> 10673dc3d4SNico Weber #include <stdio.h> 11673dc3d4SNico Weber #include <windows.h> 12673dc3d4SNico Weber main()13673dc3d4SNico Weberint main() { 14673dc3d4SNico Weber void *p = calloc(1, 100); 15673dc3d4SNico Weber assert(p); 16673dc3d4SNico Weber void *np = _recalloc(p, 2, 100); 17673dc3d4SNico Weber assert(np); 18673dc3d4SNico Weber for (int i = 0; i < 2 * 100; i++) { 19673dc3d4SNico Weber assert(((BYTE *)np)[i] == 0); 20673dc3d4SNico Weber } 21673dc3d4SNico Weber void *nnp = _recalloc(np, 1, 100); 22673dc3d4SNico Weber assert(nnp); 23673dc3d4SNico Weber for (int i = 0; i < 100; i++) { 24673dc3d4SNico Weber assert(((BYTE *)nnp)[i] == 0); 25673dc3d4SNico Weber ((BYTE *)nnp)[i] = 0x0d; 26673dc3d4SNico Weber } 27673dc3d4SNico Weber void *nnnp = _recalloc(nnp, 2, 100); 28673dc3d4SNico Weber assert(nnnp); 29673dc3d4SNico Weber for (int i = 0; i < 100; i++) { 30673dc3d4SNico Weber assert(((BYTE *)nnnp)[i] == 0x0d); 31673dc3d4SNico Weber } 32673dc3d4SNico Weber for (int i = 100; i < 200; i++) { 33673dc3d4SNico Weber assert(((BYTE *)nnnp)[i] == 0); 34673dc3d4SNico Weber } 35673dc3d4SNico Weber fprintf(stderr, "passed\n"); 36673dc3d4SNico Weber return 0; 37673dc3d4SNico Weber } 38673dc3d4SNico Weber 39673dc3d4SNico Weber // CHECK-NOT: Assertion 40673dc3d4SNico Weber // CHECK: passed