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