1 void frob(void);
2 
3 char c;
options_write(void)4 static int options_write(void)
5 {
6 	char a;
7 	unsigned char b;
8 
9 	a = (char)0xff;
10 	a = 0xff;
11 	(char)b = 0xff;
12 	b = 0xff;
13 	if (c > -400)
14 		frob();
15 	if (c < -400)
16 		frob();
17 	if (400 > c)
18 		frob();
19 	if (-400 > c)
20 		frob();
21 	b = -12;
22 
23 }
24 /*
25  * check-name: smatch cast handling
26  * check-command: smatch sm_casts.c
27  *
28  * check-output-start
29 sm_casts.c:13 options_write() warn: always true condition '(c > -400) => ((-128)-127 > (-400))'
30 sm_casts.c:15 options_write() warn: impossible condition '(c < -400) => ((-128)-127 < (-400))'
31 sm_casts.c:17 options_write() warn: always true condition '(400 > c) => (400 > (-128)-127)'
32 sm_casts.c:19 options_write() warn: impossible condition '(-400 > c) => ((-400) > (-128)-127)'
33 sm_casts.c:21 options_write() warn: assigning (-12) to unsigned variable 'b'
34  * check-output-end
35  */
36