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