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