Mercurial > hg > CbC > CbC_llvm
view compiler-rt/test/tsan/Darwin/osatomics-add.mm @ 266:00f31e85ec16 default tip
Added tag current for changeset 31d058e83c98
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Oct 2023 10:13:55 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clangxx_tsan %s -o %t -framework Foundation -std=c++11 // RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> #import <libkern/OSAtomic.h> #include <thread> volatile int64_t retainCount = 0; long g = 0; void dealloc() { g = 42; } void release() { if (OSAtomicAdd64Barrier(-1, &retainCount) == 0) { dealloc(); } } void retain() { OSAtomicAdd64Barrier(1, &retainCount); } int main(int argc, const char * argv[]) { fprintf(stderr, "start\n"); retain(); retain(); std::thread t([]{ release(); }); g = 47; release(); t.join(); fprintf(stderr, "end, g = %ld\n", g); return 0; } // CHECK: start // CHECK: end, g = 42 // CHECK-NOT: WARNING: ThreadSanitizer