1*1f5207b7SJohn Levon #include "check_debug.h" 2*1f5207b7SJohn Levon 3*1f5207b7SJohn Levon void frob(); 4*1f5207b7SJohn Levon 5*1f5207b7SJohn Levon #define min(a, b) ((a) < (b) ? (a) : (b)) 6*1f5207b7SJohn Levon func(void)7*1f5207b7SJohn Levonvoid func(void) 8*1f5207b7SJohn Levon { 9*1f5207b7SJohn Levon int i; 10*1f5207b7SJohn Levon int val; 11*1f5207b7SJohn Levon 12*1f5207b7SJohn Levon for (i = 0; i < 10; i++) { 13*1f5207b7SJohn Levon val = min(5, i); 14*1f5207b7SJohn Levon __smatch_value("val"); 15*1f5207b7SJohn Levon } 16*1f5207b7SJohn Levon 17*1f5207b7SJohn Levon i++; 18*1f5207b7SJohn Levon __smatch_value("i"); 19*1f5207b7SJohn Levon val = min(100, i); 20*1f5207b7SJohn Levon __smatch_value("val"); 21*1f5207b7SJohn Levon 22*1f5207b7SJohn Levon for (i = 0; i < 10; i++) 23*1f5207b7SJohn Levon frob(); 24*1f5207b7SJohn Levon 25*1f5207b7SJohn Levon val = min(100, i); 26*1f5207b7SJohn Levon __smatch_value("val"); 27*1f5207b7SJohn Levon } 28*1f5207b7SJohn Levon /* 29*1f5207b7SJohn Levon * check-name: assigning select statements 30*1f5207b7SJohn Levon * check-command: smatch -I.. sm_select_assign.c 31*1f5207b7SJohn Levon * 32*1f5207b7SJohn Levon * check-output-start 33*1f5207b7SJohn Levon sm_select_assign.c:14 func() val = 0-5 34*1f5207b7SJohn Levon sm_select_assign.c:18 func() i = 11-s32max 35*1f5207b7SJohn Levon sm_select_assign.c:20 func() val = 11-100 36*1f5207b7SJohn Levon sm_select_assign.c:26 func() val = 10 37*1f5207b7SJohn Levon * check-output-end 38*1f5207b7SJohn Levon */ 39