// RUN: %clang_cc1 -verify -ffreestanding -std=c11 %s
// expected-no-diagnostics
/* WG14 N1482: Clang 4
* Explicit initializers for atomics
*
* NB: We can only test the compile time behavior from the paper, not the
* runtime behavior.
*/
#include <stdatomic.h>
#ifndef ATOMIC_BOOL_LOCK_FREE
#error "Missing ATOMIC_BOOL_LOCK_FREE"
#endif
#ifndef ATOMIC_CHAR_LOCK_FREE
#error "Missing ATOMIC_CHAR_LOCK_FREE"
#endif
#ifndef ATOMIC_CHAR16_T_LOCK_FREE
#error "Missing ATOMIC_CHAR16_T_LOCK_FREE"
#endif
#ifndef ATOMIC_CHAR32_T_LOCK_FREE
#error "Missing ATOMIC_CHAR32_T_LOCK_FREE"
#endif
#ifndef ATOMIC_WCHAR_T_LOCK_FREE
#error "Missing ATOMIC_WCHAR_T_LOCK_FREE"
#endif
#ifndef ATOMIC_SHORT_LOCK_FREE
#error "Missing ATOMIC_SHORT_LOCK_FREE"
#endif
#ifndef ATOMIC_INT_LOCK_FREE
#error "Missing ATOMIC_INT_LOCK_FREE"
#endif
#ifndef ATOMIC_LONG_LOCK_FREE
#error "Missing ATOMIC_LONG_LOCK_FREE"
#endif
#ifndef ATOMIC_LLONG_LOCK_FREE
#error "Missing ATOMIC_LLONG_LOCK_FREE"
#endif
#ifndef ATOMIC_POINTER_LOCK_FREE
#error "Missing ATOMIC_POINTER_LOCK_FREE"
#endif
#ifndef ATOMIC_VAR_INIT
#error "Missing ATOMIC_VAR_INIT"
#endif
#ifndef atomic_init
#error "Missing atomic_init"
#endif