xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_271.c (revision 0eedaefa0b91e39f24d97248427f3cc57a457519)
1*0eedaefaSrillig /*	$NetBSD: msg_271.c,v 1.4 2021/08/22 13:52:19 rillig Exp $	*/
2a0a15c14Srillig # 3 "msg_271.c"
3a0a15c14Srillig 
4*0eedaefaSrillig /* Test for message: switch expression must be of type 'int' in traditional C [271] */
5a0a15c14Srillig 
6e603b2e8Srillig /* lint1-flags: -tw */
7e603b2e8Srillig 
example(long_int,unsigned_int)8e603b2e8Srillig example(long_int, unsigned_int)
9e603b2e8Srillig 	long long_int;
10e603b2e8Srillig 	unsigned unsigned_int;
11e603b2e8Srillig {
12*0eedaefaSrillig 	/* expect+1: warning: switch expression must be of type 'int' in traditional C [271] */
13e603b2e8Srillig 	switch (long_int) {
14e603b2e8Srillig 	case 3:
15e603b2e8Srillig 		return 1;
16e603b2e8Srillig 	}
17e603b2e8Srillig 
18e603b2e8Srillig 	/*
19e603b2e8Srillig 	 * XXX: K&R clearly says "the result must be 'int'", but lint also
20e603b2e8Srillig 	 * allows unsigned int.
21e603b2e8Srillig 	 */
22e603b2e8Srillig 	switch (unsigned_int) {
23e603b2e8Srillig 	case 3:
24e603b2e8Srillig 		return 1;
25e603b2e8Srillig 	}
26e603b2e8Srillig 	return 2;
27e603b2e8Srillig }
28