xref: /netbsd-src/tests/usr.bin/xlint/lint1/init_c90.c (revision b2baa50111d645353fa30b4deab0f79d93650c8c)
1*b2baa501Srillig /*	$NetBSD: init_c90.c,v 1.5 2023/03/28 14:44:34 rillig Exp $	*/
2ae427bfbSrillig # 3 "init_c90.c"
3ae427bfbSrillig 
4ae427bfbSrillig /*
5ae427bfbSrillig  * Test initialization before C99.
6ae427bfbSrillig  *
7ae427bfbSrillig  * C90 3.5.7
8ae427bfbSrillig  */
9ae427bfbSrillig 
10*b2baa501Srillig /* lint1-flags: -sw -X 351 */
11ae427bfbSrillig 
12ae427bfbSrillig struct point {
13ae427bfbSrillig 	int x, y;
14ae427bfbSrillig };
15ae427bfbSrillig 
16ae427bfbSrillig struct point point_c90 = { 0, 0 };
170a781eecSrillig /* expect+2: warning: struct or union member name in initializer is a C99 feature [313] */
180a781eecSrillig /* expect+1: warning: struct or union member name in initializer is a C99 feature [313] */
19ae427bfbSrillig struct point point_c99 = { .x = 0, .y = 0 };
20ae427bfbSrillig 
21ae427bfbSrillig struct point points_c90[] = {{ 0, 0 }};
220a781eecSrillig /* expect+1: warning: array initializer with designators is a C99 feature [321] */
23ae427bfbSrillig struct point points_c99[] = {[3] = { 0, 0 }};
24a4bbb227Srillig 
25a4bbb227Srillig 
26a4bbb227Srillig struct point
compound_literal(void)27a4bbb227Srillig compound_literal(void) {
28c83f7defSrillig 	/* expect+1: error: compound literals are a C99/GCC extension [319] */
29a4bbb227Srillig 	return (struct point){ 0, 0 };
30a4bbb227Srillig }
31