aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/backend/pointer-param.c
blob: b705e6f4d0e9c9e621c0809608dd0224c8a53017 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
extern int gfun(int);
static int sfun(int a) { return a; }

void usei(int *);
void usef(int (*)(int));
void usev(void *);

void foo(int *p, int a[5], int (*pfun)(int));
void foo(int *p, int a[5], int (*pfun)(int))
{
	extern int valg[5], valh[5], vali[5];
	static int vals[5], valt[5], valr[5];
	       int vala[5], valb[5], valc[5];

	usei(p);
	usei(valg);
	usei(&valh[0]);
	usei(&vali[1]);
	usei(vals);
	usei(&valt[0]);
	usei(&valr[1]);
	usei(vala);
	usei(&valb[0]);
	usei(&valc[1]);

	usef(pfun);
	usef(gfun);
	usef(&gfun);
	usef(sfun);
	usef(&sfun);

	usev(pfun);
	usev(gfun);
	usev(&gfun);
	usev(sfun);
	usev(&sfun);
}

/*
 * check-name: pointer-param
 * check-command: ./sparsec -c $file -o tmp.o
 */