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 Levon int 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 || x > 10)
15*1f5207b7SJohn Levon 			return;
16*1f5207b7SJohn Levon 	} else {
17*1f5207b7SJohn Levon 		return;
18*1f5207b7SJohn Levon 	}
19*1f5207b7SJohn Levon 
20*1f5207b7SJohn Levon 	if (x)
21*1f5207b7SJohn Levon 		;
22*1f5207b7SJohn Levon 
23*1f5207b7SJohn Levon 	if (x == -5)
24*1f5207b7SJohn Levon 		__smatch_implied(a);
25*1f5207b7SJohn Levon 
26*1f5207b7SJohn Levon 	return 0;
27*1f5207b7SJohn Levon }
28*1f5207b7SJohn Levon 
29*1f5207b7SJohn Levon /*
30*1f5207b7SJohn Levon  * check-name: smatch implied #17
31*1f5207b7SJohn Levon  * check-command: smatch -I.. sm_implied17.c
32*1f5207b7SJohn Levon  *
33*1f5207b7SJohn Levon  * check-output-start
34*1f5207b7SJohn Levon sm_implied17.c:24 func() implied: a = '1'
35*1f5207b7SJohn Levon  * check-output-end
36*1f5207b7SJohn Levon  */
37