1353358Sdim//===-- atomic_flag_clear.c -----------------------------------------------===// 2353358Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6353358Sdim// 7353358Sdim//===----------------------------------------------------------------------===// 8353358Sdim// 9353358Sdim// This file implements atomic_flag_clear from C11's stdatomic.h. 10353358Sdim// 11353358Sdim//===----------------------------------------------------------------------===// 12287516Sdim 13296417Sdim#ifndef __has_include 14296417Sdim#define __has_include(inc) 0 15296417Sdim#endif 16296417Sdim 17296417Sdim#if __has_include(<stdatomic.h>) 18296417Sdim 19287516Sdim#include <stdatomic.h> 20287516Sdim#undef atomic_flag_clear 21287516Sdimvoid atomic_flag_clear(volatile atomic_flag *object) { 22296417Sdim __c11_atomic_store(&(object)->_Value, 0, __ATOMIC_SEQ_CST); 23287516Sdim} 24296417Sdim 25296417Sdim#endif 26