1int main (int argc, char **argv, char **envp)
2{
3    extern void dummy();
4    dummy();
5    return 0;
6
7}
8
9/* We put main() right up front so its line number doesn't keep changing.  */
10
11/*
12 *	Test file with lots of different types, for testing the
13 *	"whatis" command.
14 */
15
16/*
17 *	First the basic C types.
18 */
19
20#if !defined (__STDC__) && !defined (_AIX)
21#define signed  /**/
22#endif
23
24char		v_char;
25signed char	v_signed_char;
26unsigned char	v_unsigned_char;
27
28short		v_short;
29signed short	v_signed_short;
30unsigned short	v_unsigned_short;
31
32int		v_int;
33signed int	v_signed_int;
34unsigned int	v_unsigned_int;
35
36long		v_long;
37signed long	v_signed_long;
38unsigned long	v_unsigned_long;
39
40float		v_float;
41double		v_double;
42/*
43 *	Now some derived types, which are arrays, functions-returning,
44 *	pointers, structures, unions, and enumerations.
45 */
46
47/**** arrays *******/
48
49char		v_char_array[2];
50signed char	v_signed_char_array[2];
51unsigned char	v_unsigned_char_array[2];
52
53short		v_short_array[2];
54signed short	v_signed_short_array[2];
55unsigned short	v_unsigned_short_array[2];
56
57int		v_int_array[2];
58signed int	v_signed_int_array[2];
59unsigned int	v_unsigned_int_array[2];
60
61long		v_long_array[2];
62signed long	v_signed_long_array[2];
63unsigned long	v_unsigned_long_array[2];
64
65float		v_float_array[2];
66double		v_double_array[2];
67
68/**** initialized array *******/
69
70int		v_int_array_init[2] = { 10, 20 };
71
72/**** pointers *******/
73
74char		*v_char_pointer;
75signed char	*v_signed_char_pointer;
76unsigned char	*v_unsigned_char_pointer;
77
78short		*v_short_pointer;
79signed short	*v_signed_short_pointer;
80unsigned short	*v_unsigned_short_pointer;
81
82int		*v_int_pointer;
83signed int	*v_signed_int_pointer;
84unsigned int	*v_unsigned_int_pointer;
85
86long		*v_long_pointer;
87signed long	*v_signed_long_pointer;
88unsigned long	*v_unsigned_long_pointer;
89
90float		*v_float_pointer;
91double		*v_double_pointer;
92
93/**** structs *******/
94
95struct t_struct {
96    char	v_char_member;
97    short	v_short_member;
98    int		v_int_member;
99    long	v_long_member;
100    float	v_float_member;
101    double	v_double_member;
102} v_struct1;
103
104struct {
105    char	v_char_member;
106    short	v_short_member;
107    int		v_int_member;
108    long	v_long_member;
109    float	v_float_member;
110    double	v_double_member;
111} v_struct2;
112
113/**** unions *******/
114
115union t_union {
116    char	v_char_member;
117    short	v_short_member;
118    int		v_int_member;
119    long	v_long_member;
120    float	v_float_member;
121    double	v_double_member;
122} v_union;
123
124union {
125    char	v_char_member;
126    short	v_short_member;
127    int		v_int_member;
128    long	v_long_member;
129    float	v_float_member;
130    double	v_double_member;
131} v_union2;
132
133/*** Functions returning type ********/
134
135char		v_char_func () { return(0); }
136signed char	v_signed_char_func () { return (0); }
137unsigned char	v_unsigned_char_func () { return (0); }
138
139short		v_short_func () { return (0); }
140signed short	v_signed_short_func () { return (0); }
141unsigned short	v_unsigned_short_func () { return (0); }
142
143int		v_int_func () { return (0); }
144signed int	v_signed_int_func () { return (0); }
145unsigned int	v_unsigned_int_func () { return (0); }
146
147long		v_long_func () { return (0); }
148signed long	v_signed_long_func () { return (0); }
149unsigned long	v_unsigned_long_func () { return (0); }
150
151float		v_float_func () { return (0.0); }
152double		v_double_func () { return (0.0); }
153
154/**** Some misc more complicated things *******/
155
156struct link {
157	struct link *next;
158#ifdef __STDC__
159	struct link *(*linkfunc) (struct link *self, int flags);
160#else
161	struct link *(*linkfunc) ();
162#endif
163	struct t_struct stuff[1][2][3];
164} *s_link;
165
166union tu_link {
167	struct link *next;
168#ifdef __STDC__
169	struct link *(*linkfunc) (struct link *self, int flags);
170#else
171	struct link *(*linkfunc) ();
172#endif
173	struct t_struct stuff[1][2][3];
174} u_link;
175
176/**** Enumerations *******/
177
178enum colors {red, green, blue} color;
179enum cars {chevy, ford, porsche} clunker;
180
181struct t_struct *null_t_struct;
182
183void dummy()
184{
185  /* Some linkers (e.g. on AIX) remove unreferenced variables,
186     so make sure to reference them. */
187  v_char = 0;
188  v_signed_char = 1;
189  v_unsigned_char = 2;
190
191  v_short = 3;
192  v_signed_short = 4;
193  v_unsigned_short = 5;
194
195  v_int = 6;
196  v_signed_int = 7;
197  v_unsigned_int = 8;
198
199  v_long = 9;
200  v_signed_long = 10;
201  v_unsigned_long = 11;
202
203  v_float = 100.0;
204  v_double = 200.0;
205  v_char_array[0] = v_char;
206  v_signed_char_array[0] = v_signed_char;
207  v_unsigned_char_array[0] = v_unsigned_char;
208
209  v_short_array[0] = v_short;
210  v_signed_short_array[0] = v_signed_short;
211  v_unsigned_short_array[0] = v_unsigned_short;
212
213  v_int_array[0] = v_int;
214  v_signed_int_array[0] = v_signed_int;
215  v_unsigned_int_array[0] = v_unsigned_int;
216
217  v_long_array[0] = v_long;
218  v_signed_long_array[0] = v_signed_long;
219  v_unsigned_long_array[0] = v_unsigned_long;
220
221  v_float_array[0] = v_float;
222  v_double_array[0] = v_double;
223  v_char_pointer = &v_char;
224  v_signed_char_pointer = &v_signed_char;
225  v_unsigned_char_pointer = &v_unsigned_char;
226
227  v_short_pointer = &v_short;
228  v_signed_short_pointer = &v_signed_short;
229  v_unsigned_short_pointer = &v_unsigned_short;
230
231  v_int_pointer = &v_int;
232  v_signed_int_pointer = &v_signed_int;
233  v_unsigned_int_pointer = &v_unsigned_int;
234
235  v_long_pointer = &v_long;
236  v_signed_long_pointer = &v_signed_long;
237  v_unsigned_long_pointer = &v_unsigned_long;
238
239  v_float_pointer = &v_float;
240  v_double_pointer = &v_double;
241
242  color = red;
243  clunker = porsche;
244
245  u_link.next = s_link;
246
247  v_struct2.v_int_member = v_struct1.v_int_member;
248  v_union2.v_short_member = v_union.v_short_member;
249}
250