1*1f5207b7SJohn Levon #include "check_debug.h"
2*1f5207b7SJohn Levon 
3*1f5207b7SJohn Levon int a, b;
4*1f5207b7SJohn Levon 
frob(int * data)5*1f5207b7SJohn Levon int frob(int *data)
6*1f5207b7SJohn Levon {
7*1f5207b7SJohn Levon 	if (a)
8*1f5207b7SJohn Levon 		return 0;
9*1f5207b7SJohn Levon 	if (b)
10*1f5207b7SJohn Levon 		return -1;
11*1f5207b7SJohn Levon 	*data = 42;
12*1f5207b7SJohn Levon 	return 1;
13*1f5207b7SJohn Levon }
14*1f5207b7SJohn Levon 
test(void)15*1f5207b7SJohn Levon void test(void)
16*1f5207b7SJohn Levon {
17*1f5207b7SJohn Levon 	int x = -1;
18*1f5207b7SJohn Levon 	int ret;
19*1f5207b7SJohn Levon 
20*1f5207b7SJohn Levon 	ret = frob(&x);
21*1f5207b7SJohn Levon 	if (ret < 0)
22*1f5207b7SJohn Levon 		return;
23*1f5207b7SJohn Levon 	if (ret == 0)
24*1f5207b7SJohn Levon 		return;
25*1f5207b7SJohn Levon 	__smatch_implied(x);
26*1f5207b7SJohn Levon }
27*1f5207b7SJohn Levon 
28*1f5207b7SJohn Levon /*
29*1f5207b7SJohn Levon  * check-name: smatch implied #18
30*1f5207b7SJohn Levon  * check-command: smatch -I.. sm_implied18.c
31*1f5207b7SJohn Levon  *
32*1f5207b7SJohn Levon  * check-output-start
33*1f5207b7SJohn Levon sm_implied18.c:25 test() implied: x = '42'
34*1f5207b7SJohn Levon  * check-output-end
35*1f5207b7SJohn Levon  */
36