Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / compiler-rt / test / tsan / Darwin / libcxx-call-once.mm
blobba4615fa3ab954a6833c2e64cef03a409fa8f5d3
1 // RUN: %clangxx_tsan %s -o %t -framework Foundation -std=c++11
2 // RUN: %run %t 2>&1 | FileCheck %s
4 #import <Foundation/Foundation.h>
6 #import <iostream>
7 #import <thread>
9 long my_global;
10 std::once_flag once_token;
12 void thread_func() {
13   std::call_once(once_token, [] {
14     my_global = 17;
15   });
17   long val = my_global;
18   fprintf(stderr, "my_global = %ld\n", val);
21 int main(int argc, const char *argv[]) {
22   fprintf(stderr, "Hello world.\n");
24   std::thread t1(thread_func);
25   std::thread t2(thread_func);
26   t1.join();
27   t2.join();
29   fprintf(stderr, "Done.\n");
32 // CHECK: Hello world.
33 // CHECK-NOT: WARNING: ThreadSanitizer
34 // CHECK: Done.