xref: /illumos-gate/usr/src/tools/smatch/src/validation/backend/degenerate-ptr.c (revision b30d193948be5a7794d7ae3ba0ed9c2f72c88e0f)
1 extern int array[3];
2 extern int matrix[3][3];
3 extern int fun(int);
4 
5 extern int fia(int []);
6 extern int fip(int *);
7 extern int fim(int (*)[3]);
8 extern int fvp(void *);
9 extern int ffp(int (*)(int));
10 
11 void call(void);
12 void call(void)
13 {
14 	fia(array);
15 
16 	fip(array);
17 	fim(matrix);
18 
19 	fvp(array);
20 	fvp(matrix);
21 
22 	fvp(fun);
23 	fvp(&fun);
24 	ffp(fun);
25 	ffp(&fun);
26 }
27 
28 void local(void);
29 void local(void)
30 {
31 	int *ip;
32 	int (*im)[3];
33 	void *vp;
34 	int (*fp)(int);
35 
36 	ip = array;
37 	im = matrix;
38 
39 	vp = array;
40 	vp = matrix;
41 
42 	vp = fun;
43 	vp = &fun;
44 	fp = fun;
45 	fp = &fun;
46 }
47 
48 
49 extern int *ip;
50 extern int (*im)[3];
51 extern void *vp;
52 extern int (*fp)(int);
53 
54 void global(void);
55 void global(void)
56 {
57 	ip = array;
58 	im = matrix;
59 
60 	vp = array;
61 	vp = matrix;
62 
63 	vp = fun;
64 	vp = &fun;
65 	fp = fun;
66 	fp = &fun;
67 }
68 
69 /*
70  * check-name: degenerated pointer handling
71  * check-command: sparsec -c $file -o tmp.o
72  */
73