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; 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 */