1*58b9f456SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 2*58b9f456SAndroid Build Coastguard Worker // 3*58b9f456SAndroid Build Coastguard Worker // The LLVM Compiler Infrastructure 4*58b9f456SAndroid Build Coastguard Worker // 5*58b9f456SAndroid Build Coastguard Worker // This file is dual licensed under the MIT and the University of Illinois Open 6*58b9f456SAndroid Build Coastguard Worker // Source Licenses. See LICENSE.TXT for details. 7*58b9f456SAndroid Build Coastguard Worker // 8*58b9f456SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 9*58b9f456SAndroid Build Coastguard Worker // 10*58b9f456SAndroid Build Coastguard Worker // UNSUPPORTED: libcpp-has-no-threads 11*58b9f456SAndroid Build Coastguard Worker // XFAIL: c++98, c++03 12*58b9f456SAndroid Build Coastguard Worker 13*58b9f456SAndroid Build Coastguard Worker // <atomic> 14*58b9f456SAndroid Build Coastguard Worker 15*58b9f456SAndroid Build Coastguard Worker // struct atomic_flag 16*58b9f456SAndroid Build Coastguard Worker 17*58b9f456SAndroid Build Coastguard Worker // atomic_flag() = ATOMIC_FLAG_INIT; 18*58b9f456SAndroid Build Coastguard Worker 19*58b9f456SAndroid Build Coastguard Worker #include <atomic> 20*58b9f456SAndroid Build Coastguard Worker #include <cassert> 21*58b9f456SAndroid Build Coastguard Worker main()22*58b9f456SAndroid Build Coastguard Workerint main() 23*58b9f456SAndroid Build Coastguard Worker { 24*58b9f456SAndroid Build Coastguard Worker std::atomic_flag f = ATOMIC_FLAG_INIT; 25*58b9f456SAndroid Build Coastguard Worker assert(f.test_and_set() == 0); 26*58b9f456SAndroid Build Coastguard Worker } 27