1 #include <stdio.h>
2 
3 unsigned int frob();
4 
5 unsigned char *a;
6 unsigned int *b;
7 int *c;
8 unsigned char *****d;
main(void)9 int main(void)
10 {
11 
12 	if (*a == (unsigned int)-1)
13 		frob();
14 	if (*b == (unsigned int)-1)
15 		frob();
16 	if (*c == (unsigned int)-1)
17 		frob();
18 	if (*d == (unsigned int)-1)
19 		frob();
20 	if (*d == -1)
21 		frob();
22 	if (*****d == (unsigned int)-1)
23 		frob();
24 	return 0;
25 }
26 /*
27  * check-name: smatch casts pointers
28  * check-command: smatch sm_casts2.c
29  *
30  * check-output-start
31 sm_casts2.c:12 main() warn: impossible condition '(*a == -1) => (0-255 == u32max)'
32 sm_casts2.c:22 main() warn: impossible condition '(*****d == -1) => (0-255 == u32max)'
33  * check-output-end
34  */
35