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