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

// RUN: %clang_cl_asan -Od %s -Fe%t
// RUN: not %run %t 2>&1 | FileCheck %s

#include <windows.h>

typedef struct _S {
  unsigned int bf1:1;
  unsigned int bf2:2;
  unsigned int bf3:3;
  unsigned int bf4:4;
} S;

void make_access(S *s) {
  s->bf2 = 2;
// CHECK: AddressSanitizer: heap-use-after-free on address [[ADDR:0x[0-9a-f]+]]
// CHECK: READ of size {{[124]}} at [[ADDR]]
// CHECK:   {{#0 .* make_access.*bitfield_uaf.cpp}}:[[@LINE-3]]
// CHECK:   {{#1 .* main}}
}

int main(void) {
  S *s = (S*)malloc(sizeof(S));
  free(s);
// CHECK: [[ADDR]] is located 0 bytes inside of 4-byte region
// CHECK-LABEL: freed by thread T0 here:
// CHECK:   {{#0 .* free }}
// CHECK:   {{#1 .* main .*bitfield_uaf.cpp}}:[[@LINE-4]]
// CHECK-LABEL: previously allocated by thread T0 here:
// CHECK:   {{#0 .* malloc }}
// CHECK:   {{#1 .* main .*bitfield_uaf.cpp}}:[[@LINE-8]]
  make_access(s);
  return 0;
}

