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