1 #include "check_debug.h" 2 3 void frob(); 4 5 int test, test2; 6 7 int x; 8 void func (void) 9 { 10 if (({int test = !!x; frob(); frob(); frob(); test;})) 11 __smatch_value("x"); 12 else 13 __smatch_value("x"); 14 if (test) 15 __smatch_value("x"); 16 if (({test2 = !(x == 3); frob(); frob(); frob(); test2;})) 17 __smatch_value("x"); 18 else 19 __smatch_value("x"); 20 test = !!(x == 10); 21 if (!test) 22 __smatch_value("x"); 23 __smatch_value("x"); 24 } 25 /* 26 * check-name: smatch implied #8 27 * check-command: smatch -I.. sm_implied8.c 28 * 29 * check-output-start 30 sm_implied8.c:11 func() x = s32min-(-1),1-s32max 31 sm_implied8.c:13 func() x = 0 32 sm_implied8.c:15 func() x = s32min-(-1),1-s32max 33 sm_implied8.c:17 func() x = s32min-2,4-s32max 34 sm_implied8.c:19 func() x = 3 35 sm_implied8.c:22 func() x = s32min-9,11-s32max 36 sm_implied8.c:23 func() x = s32min-s32max 37 * check-output-end 38 */