1 // RUN: %clangxx_tsan -O1 %s -o %t && not %t 2>&1 | FileCheck %s
16 void *Thread(void *a
) {
25 fprintf(stderr
, "addr=%p\n", GlobalData
);
26 fprintf(stderr
, "addr2=%p\n", &x
);
27 fprintf(stderr
, "addr3=%p\n", XXX::YYY::ZZZ
);
29 pthread_create(&t
, 0, Thread
, 0);
36 // CHECK: addr=[[ADDR:0x[0-9,a-f]+]]
37 // CHECK: addr2=[[ADDR2:0x[0-9,a-f]+]]
38 // CHECK: addr3=[[ADDR3:0x[0-9,a-f]+]]
39 // CHECK: WARNING: ThreadSanitizer: data race
40 // CHECK: Location is global 'GlobalData' of size 40 at [[ADDR]] ({{.*}}+0x{{[0-9,a-f]+}})
41 // CHECK: WARNING: ThreadSanitizer: data race
42 // CHECK: Location is global 'x' of size 4 at [[ADDR2]] ({{.*}}+0x{{[0-9,a-f]+}})
43 // CHECK: WARNING: ThreadSanitizer: data race
44 // CHECK: Location is global 'XXX::YYY::ZZZ' of size 40 at [[ADDR3]] ({{.*}}+0x{{[0-9,a-f]+}})