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