// UNSUPPORTED: target={{.*-windows-gnu}}

// RUN: %clang_cl_asan -Od %s -Fe%t
// RUN: %env_asan_opts=windows_hook_rtl_allocators=true not %run %t 2>&1 | FileCheck %s
// UNSUPPORTED: asan-64-bits
#include <stdio.h>
#include <windows.h>

int main() {
  char *oldbuf;
  size_t sz = 8;
  HANDLE procHeap = GetProcessHeap();
  oldbuf = (char *)HeapAlloc(procHeap, 0, sz);
  char *newbuf = oldbuf;
  while (oldbuf == newbuf) {
    sz *= 2;
    newbuf = (char *)HeapReAlloc(procHeap, 0, oldbuf, sz);
  }

  newbuf[0] = 'a';
  oldbuf[0] = 'a';
  // CHECK: AddressSanitizer: heap-use-after-free on address [[ADDR:0x[0-9a-f]+]]
  // CHECK: WRITE of size 1 at [[WRITE2:0x[0-9a-f]+]] thread T0
  // CHECK: #0 {{0x[0-9a-f]+ in main.*}}:[[@LINE-3]]
}
