1*1f5207b7SJohn Levon #include <stdio.h>
2*1f5207b7SJohn Levon #include <string.h>
3*1f5207b7SJohn Levon #include "check_debug.h"
4*1f5207b7SJohn Levon 
5*1f5207b7SJohn Levon long long l;
6*1f5207b7SJohn Levon unsigned long long ul;
7*1f5207b7SJohn Levon int i;
8*1f5207b7SJohn Levon unsigned int ui;
9*1f5207b7SJohn Levon signed char c;
10*1f5207b7SJohn Levon unsigned char uc;
11*1f5207b7SJohn Levon 
main(void)12*1f5207b7SJohn Levon int main(void)
13*1f5207b7SJohn Levon {
14*1f5207b7SJohn Levon 	int idx;
15*1f5207b7SJohn Levon 
16*1f5207b7SJohn Levon 	if (c < -2)
17*1f5207b7SJohn Levon 		return 1;
18*1f5207b7SJohn Levon 	if (uc < -2)
19*1f5207b7SJohn Levon 		return 1;
20*1f5207b7SJohn Levon 	if (i < -2)
21*1f5207b7SJohn Levon 		return 1;
22*1f5207b7SJohn Levon 	if (ui < -2)
23*1f5207b7SJohn Levon 		return 1;
24*1f5207b7SJohn Levon 	if (l < -2)
25*1f5207b7SJohn Levon 		return 1;
26*1f5207b7SJohn Levon 	if (ul < -2)
27*1f5207b7SJohn Levon 		return 1;
28*1f5207b7SJohn Levon 
29*1f5207b7SJohn Levon 	__smatch_implied(l);
30*1f5207b7SJohn Levon 	__smatch_implied(ul);
31*1f5207b7SJohn Levon 	__smatch_implied(i);
32*1f5207b7SJohn Levon 	__smatch_implied(ui);
33*1f5207b7SJohn Levon 	__smatch_implied(c);
34*1f5207b7SJohn Levon 	__smatch_implied(uc);
35*1f5207b7SJohn Levon 
36*1f5207b7SJohn Levon 	return 0;
37*1f5207b7SJohn Levon }
38*1f5207b7SJohn Levon 
39*1f5207b7SJohn Levon 
40*1f5207b7SJohn Levon /*
41*1f5207b7SJohn Levon  * check-name: smatch: casts #4
42*1f5207b7SJohn Levon  * check-command: smatch -I.. sm_casts4.c
43*1f5207b7SJohn Levon  *
44*1f5207b7SJohn Levon  * check-output-start
45*1f5207b7SJohn Levon sm_casts4.c:18 main() warn: impossible condition '(uc < -2) => (0-255 < (-2))'
46*1f5207b7SJohn Levon sm_casts4.c:29 main() implied: l = '(-2)-s64max'
47*1f5207b7SJohn Levon sm_casts4.c:30 main() implied: ul = '18446744073709551614-u64max'
48*1f5207b7SJohn Levon sm_casts4.c:31 main() implied: i = '(-2)-s32max'
49*1f5207b7SJohn Levon sm_casts4.c:32 main() implied: ui = '4294967294-u32max'
50*1f5207b7SJohn Levon sm_casts4.c:33 main() implied: c = '(-2)-127'
51*1f5207b7SJohn Levon sm_casts4.c:34 main() implied: uc = ''
52*1f5207b7SJohn Levon  * check-output-end
53*1f5207b7SJohn Levon  */
54