1*1f5207b7SJohn Levon #include "check_debug.h" 2*1f5207b7SJohn Levon test(int x)3*1f5207b7SJohn Levonstatic int test(int x) 4*1f5207b7SJohn Levon { 5*1f5207b7SJohn Levon if (x == 12) 6*1f5207b7SJohn Levon return 10; 7*1f5207b7SJohn Levon return 0; 8*1f5207b7SJohn Levon } 9*1f5207b7SJohn Levon 10*1f5207b7SJohn Levon int a, b; func(void)11*1f5207b7SJohn Levonstatic void func(void) 12*1f5207b7SJohn Levon { 13*1f5207b7SJohn Levon if (a == 12) 14*1f5207b7SJohn Levon b = 1; 15*1f5207b7SJohn Levon else 16*1f5207b7SJohn Levon b = 4; 17*1f5207b7SJohn Levon if (test(a) == 10) { 18*1f5207b7SJohn Levon __smatch_implied(a); 19*1f5207b7SJohn Levon __smatch_implied(b); 20*1f5207b7SJohn Levon } else { 21*1f5207b7SJohn Levon __smatch_implied(a); 22*1f5207b7SJohn Levon __smatch_implied(b); 23*1f5207b7SJohn Levon } 24*1f5207b7SJohn Levon 25*1f5207b7SJohn Levon if (a == 12) 26*1f5207b7SJohn Levon b = 10; 27*1f5207b7SJohn Levon else 28*1f5207b7SJohn Levon b = 40; 29*1f5207b7SJohn Levon 30*1f5207b7SJohn Levon if (test(a)) 31*1f5207b7SJohn Levon __smatch_implied(b); 32*1f5207b7SJohn Levon else 33*1f5207b7SJohn Levon __smatch_implied(b); 34*1f5207b7SJohn Levon } 35*1f5207b7SJohn Levon /* 36*1f5207b7SJohn Levon * check-name: smatch implied #14 37*1f5207b7SJohn Levon * check-command: smatch -I.. sm_implied14.c 38*1f5207b7SJohn Levon * 39*1f5207b7SJohn Levon * check-output-start 40*1f5207b7SJohn Levon sm_implied14.c:18 func() implied: a = '12' 41*1f5207b7SJohn Levon sm_implied14.c:19 func() implied: b = '1' 42*1f5207b7SJohn Levon sm_implied14.c:21 func() implied: a = 's32min-11,13-s32max' 43*1f5207b7SJohn Levon sm_implied14.c:22 func() implied: b = '4' 44*1f5207b7SJohn Levon sm_implied14.c:31 func() implied: b = '10' 45*1f5207b7SJohn Levon sm_implied14.c:33 func() implied: b = '40' 46*1f5207b7SJohn Levon * check-output-end 47*1f5207b7SJohn Levon */ 48