1/* $NetBSD: c11_atomic.c,v 1.5 2023/07/07 19:45:22 rillig Exp $ */ 2# 3 "c11_atomic.c" 3 4/* 5 * The keyword '_Atomic' was added in C11. This test ensures that in C11 6 * mode, '_Atomic' can be used as both type qualifier and type specifier. 7 * 8 * See also: 9 * C11 6.7.3 Type qualifiers 10 * C11 6.7.2.4 Atomic type specifiers 11 * msg_350.c 12 */ 13 14/* lint1-extra-flags: -Ac11 -X 351 */ 15 16/* C11 6.7.3 "Type qualifiers" */ 17typedef _Atomic int atomic_int; 18 19typedef _Atomic struct { 20 int field; 21} atomic_struct; 22 23/* C11 6.7.2.4 "Atomic type specifiers" */ 24double * 25atomic_ptr_cmpexch(_Atomic(double *)*ptr_var, _Atomic(double *) new_value) 26{ 27 double *old = *ptr_var; 28 *ptr_var = new_value; 29 return old; 30} 31