1*1f5207b7SJohn Levon #include <stdio.h>
2*1f5207b7SJohn Levon #include "check_debug.h"
3*1f5207b7SJohn Levon 
frob1(int * p)4*1f5207b7SJohn Levon int frob1(int *p)
5*1f5207b7SJohn Levon {
6*1f5207b7SJohn Levon 	__smatch_implied(*p);
7*1f5207b7SJohn Levon }
8*1f5207b7SJohn Levon 
frob2(int * p)9*1f5207b7SJohn Levon int frob2(int *p)
10*1f5207b7SJohn Levon {
11*1f5207b7SJohn Levon 	__smatch_implied(*p);
12*1f5207b7SJohn Levon }
13*1f5207b7SJohn Levon 
14*1f5207b7SJohn Levon int x = 42;
15*1f5207b7SJohn Levon 
16*1f5207b7SJohn Levon struct foo {
17*1f5207b7SJohn Levon 	int a, b, c;
18*1f5207b7SJohn Levon };
19*1f5207b7SJohn Levon struct foo aaa = {
20*1f5207b7SJohn Levon 	.a = 1, .b = 2, .c = 3,
21*1f5207b7SJohn Levon };
22*1f5207b7SJohn Levon 
23*1f5207b7SJohn Levon int array[10];
24*1f5207b7SJohn Levon 
main(void)25*1f5207b7SJohn Levon int main(void)
26*1f5207b7SJohn Levon {
27*1f5207b7SJohn Levon 	frob1(&x);
28*1f5207b7SJohn Levon 	frob2(&aaa.b);
29*1f5207b7SJohn Levon 
30*1f5207b7SJohn Levon 	return 0;
31*1f5207b7SJohn Levon }
32*1f5207b7SJohn Levon 
33*1f5207b7SJohn Levon /*
34*1f5207b7SJohn Levon  * check-name: smatch mtag #6
35*1f5207b7SJohn Levon  * check-command: validation/smatch_db_test.sh -I.. sm_mtag6.c
36*1f5207b7SJohn Levon  *
37*1f5207b7SJohn Levon  * check-output-start
38*1f5207b7SJohn Levon sm_mtag6.c:6 frob1() implied: *p = '42'
39*1f5207b7SJohn Levon sm_mtag6.c:11 frob2() implied: *p = '2'
40*1f5207b7SJohn Levon  * check-output-end
41*1f5207b7SJohn Levon  */
42