1 void frob(void); 2 3 char c; 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 */