1// RUN: %clangxx_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s
2#include <pthread.h>
3#include <stddef.h>
4#include <unistd.h>
5
6void *Thread2(void *a) {
7  sleep(1);
8  *(int*)a = 43;
9  return 0;
10}
11
12void *Thread(void *a) {
13  int Var = 42;
14  pthread_t t;
15  pthread_create(&t, 0, Thread2, &Var);
16  Var = 42;
17  pthread_join(t, 0);
18  return 0;
19}
20
21int main() {
22  pthread_t t;
23  pthread_create(&t, 0, Thread, 0);
24  pthread_join(t, 0);
25}
26
27// CHECK: WARNING: ThreadSanitizer: data race
28// CHECK:   Location is stack of thread T1.
29
30