60 lines · c
1// RUN: %clang_cc1 -verify -ffreestanding -std=c11 %s2// expected-no-diagnostics3 4/* WG14 N1482: Clang 45 * Explicit initializers for atomics6 *7 * NB: We can only test the compile time behavior from the paper, not the8 * runtime behavior.9 */10 11#include <stdatomic.h>12 13#ifndef ATOMIC_BOOL_LOCK_FREE14#error "Missing ATOMIC_BOOL_LOCK_FREE"15#endif16 17#ifndef ATOMIC_CHAR_LOCK_FREE18#error "Missing ATOMIC_CHAR_LOCK_FREE"19#endif20 21#ifndef ATOMIC_CHAR16_T_LOCK_FREE22#error "Missing ATOMIC_CHAR16_T_LOCK_FREE"23#endif24 25#ifndef ATOMIC_CHAR32_T_LOCK_FREE26#error "Missing ATOMIC_CHAR32_T_LOCK_FREE"27#endif28 29#ifndef ATOMIC_WCHAR_T_LOCK_FREE30#error "Missing ATOMIC_WCHAR_T_LOCK_FREE"31#endif32 33#ifndef ATOMIC_SHORT_LOCK_FREE34#error "Missing ATOMIC_SHORT_LOCK_FREE"35#endif36 37#ifndef ATOMIC_INT_LOCK_FREE38#error "Missing ATOMIC_INT_LOCK_FREE"39#endif40 41#ifndef ATOMIC_LONG_LOCK_FREE42#error "Missing ATOMIC_LONG_LOCK_FREE"43#endif44 45#ifndef ATOMIC_LLONG_LOCK_FREE46#error "Missing ATOMIC_LLONG_LOCK_FREE"47#endif48 49#ifndef ATOMIC_POINTER_LOCK_FREE50#error "Missing ATOMIC_POINTER_LOCK_FREE"51#endif52 53#ifndef ATOMIC_VAR_INIT54#error "Missing ATOMIC_VAR_INIT"55#endif56 57#ifndef atomic_init58#error "Missing atomic_init"59#endif60