xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_022.c (revision 3d6a50253cd682dca85a66a49baee893251dac65)
1*3d6a5025Srillig /*	$NetBSD: msg_022.c,v 1.8 2025/01/03 03:14:47 rillig Exp $	*/
2a0a15c14Srillig # 3 "msg_022.c"
3a0a15c14Srillig 
4a0a15c14Srillig // Test for message: incomplete or misplaced function definition [22]
5a0a15c14Srillig 
6b2baa501Srillig /* lint1-extra-flags: -X 351 */
7b2baa501Srillig 
8953cc117Srillig /*
9953cc117Srillig  * Before decl.c 1.264 and func.c 1.130 from 2022-04-02, lint ran into
10953cc117Srillig  * assertion failures after trying to recover from the below syntax error.
11953cc117Srillig  */
12953cc117Srillig /* expect+1: error: syntax error 'f' [249] */
13953cc117Srillig unsigned long asdf = sizeof(int f() {});
14953cc117Srillig 
15953cc117Srillig /* Give the parser a chance to recover. */
16953cc117Srillig /* expect+1: warning: empty declaration [0] */
17953cc117Srillig ;
18953cc117Srillig 
19953cc117Srillig /*
20953cc117Srillig  * Before decl.c 1.264 and func.c 1.130 from 2022-04-02, lint ran into
21953cc117Srillig  * assertion failures after trying to recover from the below syntax error.
22953cc117Srillig  */
23953cc117Srillig /* expect+1: error: syntax error 'param1' [249] */
24953cc117Srillig unsigned long sz = sizeof(int(param1, param2));
25953cc117Srillig 
26953cc117Srillig /* Give the parser a chance to recover. */
27953cc117Srillig /* expect+1: warning: empty declaration [0] */
28953cc117Srillig ;
29953cc117Srillig 
30*3d6a5025Srillig /* expect+3: warning: function definition for 'old_style' with identifier list is obsolete in C23 [384] */
31e6d45417Srillig /* expect+2: error: incomplete or misplaced function definition [22] */
32bb8d0271Srillig /* expect+1: warning: old-style declaration; add 'int' [1] */
33e6d45417Srillig old_style(arg);
34