1 1.3 rillig /* $NetBSD: msg_350.c,v 1.3 2023/07/07 19:45:22 rillig Exp $ */ 2 1.1 rillig # 3 "msg_350.c" 3 1.1 rillig 4 1.1 rillig // Test for message 350: '_Atomic' requires C11 or later [350] 5 1.1 rillig 6 1.2 rillig /* 7 1.2 rillig * The keyword '_Atomic' was added in C11. This test ensures that in C99 8 1.2 rillig * mode, the parser recognizes the keyword but flags it. 9 1.2 rillig * 10 1.2 rillig * See also: 11 1.2 rillig * c11_atomic.c 12 1.2 rillig */ 13 1.2 rillig 14 1.3 rillig /* lint1-extra-flags: -X 351 */ 15 1.3 rillig 16 1.1 rillig /* expect+1: error: '_Atomic' requires C11 or later [350] */ 17 1.1 rillig typedef _Atomic int atomic_int; 18 1.1 rillig 19 1.1 rillig /* expect+1: error: '_Atomic' requires C11 or later [350] */ 20 1.1 rillig typedef _Atomic struct { 21 1.1 rillig int field; 22 1.1 rillig } atomic_struct; 23 1.2 rillig 24 1.2 rillig /* expect+3: error: '_Atomic' requires C11 or later [350] */ 25 1.2 rillig /* expect+2: error: '_Atomic' requires C11 or later [350] */ 26 1.2 rillig double * 27 1.2 rillig atomic_ptr_cmpexch(_Atomic(double *)*ptr_var, _Atomic(double *)new_value) 28 1.2 rillig { 29 1.2 rillig double *old = *ptr_var; 30 1.2 rillig *ptr_var = new_value; 31 1.2 rillig return old; 32 1.2 rillig } 33