1 /* Copyright (C) 2001, 2004, 2007, 2008, 2009, 2010, 2011
2 Free Software Foundation, Inc.
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 * Initial set of typed variables borrowed from ptype.c
22 #if !defined (__STDC__) && !defined (_AIX)
27 signed char v_signed_char
;
28 unsigned char v_unsigned_char
;
31 signed short v_signed_short
;
32 unsigned short v_unsigned_short
;
35 signed int v_signed_int
;
36 unsigned int v_unsigned_int
;
39 signed long v_signed_long
;
40 unsigned long v_unsigned_long
;
42 long long v_long_long
;
43 signed long long v_signed_long_long
;
44 unsigned long long v_unsigned_long_long
;
50 * Now some derived types, which are arrays, functions-returning,
51 * pointers, structures, unions, and enumerations.
57 signed char v_signed_char_array
[2];
58 unsigned char v_unsigned_char_array
[2];
60 short v_short_array
[2];
61 signed short v_signed_short_array
[2];
62 unsigned short v_unsigned_short_array
[2];
65 signed int v_signed_int_array
[2];
66 unsigned int v_unsigned_int_array
[2];
69 signed long v_signed_long_array
[2];
70 unsigned long v_unsigned_long_array
[2];
72 float v_float_array
[2];
73 double v_double_array
[2];
76 typedef char t_char_array
[];
78 /**** pointers *******/
81 signed char *v_signed_char_pointer
;
82 unsigned char *v_unsigned_char_pointer
;
84 short *v_short_pointer
;
85 signed short *v_signed_short_pointer
;
86 unsigned short *v_unsigned_short_pointer
;
89 signed int *v_signed_int_pointer
;
90 unsigned int *v_unsigned_int_pointer
;
93 signed long *v_signed_long_pointer
;
94 unsigned long *v_unsigned_long_pointer
;
96 float *v_float_pointer
;
97 double *v_double_pointer
;
99 char **v_char_pointer_pointer
;
100 signed char **v_signed_char_pointer_pointer
;
101 unsigned char **v_unsigned_char_pointer_pointer
;
103 short **v_short_pointer_pointer
;
104 signed short **v_signed_short_pointer_pointer
;
105 unsigned short **v_unsigned_short_pointer_pointer
;
107 int **v_int_pointer_pointer
;
108 signed int **v_signed_int_pointer_pointer
;
109 unsigned int **v_unsigned_int_pointer_pointer
;
111 long **v_long_pointer_pointer
;
112 signed long **v_signed_long_pointer_pointer
;
113 unsigned long **v_unsigned_long_pointer_pointer
;
115 float **v_float_pointer_pointer
;
116 double **v_double_pointer_pointer
;
118 /**** pointers to arrays, arrays of pointers *******/
120 char *v_char_array_pointer
[2];
121 signed char *v_signed_char_array_pointer
[2];
122 unsigned char *v_unsigned_char_array_pointer
[2];
124 short *v_short_array_pointer
[2];
125 signed short *v_signed_short_array_pointer
[2];
126 unsigned short *v_unsigned_short_array_pointer
[2];
128 int *v_int_array_pointer
[2];
129 signed int *v_signed_int_array_pointer
[2];
130 unsigned int *v_unsigned_int_array_pointer
[2];
132 long *v_long_array_pointer
[2];
133 signed long *v_signed_long_array_pointer
[2];
134 unsigned long *v_unsigned_long_array_pointer
[2];
136 float *v_float_array_pointer
[2];
137 double *v_double_array_pointer
[2];
139 char (*v_char_pointer_array
)[2];
140 signed char (*v_signed_char_pointer_array
)[2];
141 unsigned char (*v_unsigned_char_pointer_array
)[2];
143 short (*v_short_pointer_array
)[2];
144 signed short (*v_signed_short_pointer_array
)[2];
145 unsigned short (*v_unsigned_short_pointer_array
)[2];
147 int (*v_int_pointer_array
)[2];
148 signed int (*v_signed_int_pointer_array
)[2];
149 unsigned int (*v_unsigned_int_pointer_array
)[2];
151 long (*v_long_pointer_array
)[2];
152 signed long (*v_signed_long_pointer_array
)[2];
153 unsigned long (*v_unsigned_long_pointer_array
)[2];
155 float (*v_float_pointer_array
)[2];
156 double (*v_double_pointer_array
)[2];
159 /**** structs *******/
163 short v_short_member
;
166 float v_float_member
;
167 double v_double_member
;
170 struct t_struct
*v_t_struct_p
;
174 short v_short_member
;
177 float v_float_member
;
178 double v_double_member
;
181 /* typedef'd struct without a tag. */
183 double v_double_member
;
186 /* GCC seems to want a variable of this type, or else it won't put out
190 /**** unions *******/
194 short v_short_member
;
197 float v_float_member
;
198 double v_double_member
;
203 short v_short_member
;
206 float v_float_member
;
207 double v_double_member
;
210 /* typedef'd union without a tag. */
212 double v_double_member
;
215 /* GCC seems to want a variable of this type, or else it won't put out
219 /**** Enumerations *******/
222 /* Work around the bug for compilers which don't put out the right stabs. */
223 #if __GNUC__ < 2 && !defined (_AIX)
226 {red1
, green1
, blue1
} primary1
;
228 enum {red
, green
, blue
} primary
;
229 enum colors
{yellow
, purple
, pink
} nonprimary
;
231 enum {chevy
, ford
} clunker
;
232 enum cars
{bmw
, porsche
} sportscar
;
236 typedef enum {FALSE
, TRUE
} boolean
;
238 /*note: aCC has bool type predefined with 'false' and 'true'*/
239 typedef enum bvals
{my_false
, my_true
} boolean2
;
242 enum misordered
{two
= 2, one
= 1, zero
= 0, three
= 3};
244 /* Seems like we need a variable of this type to get the type to be put
245 in the executable, at least for AIX xlc. */
246 enum misordered v_misordered
= three
;
248 /**** Function pointers *******/
250 char (*v_char_func
) (int, int*);
251 signed char (*v_signed_char_func
) (int, int*);
252 unsigned char (*v_unsigned_char_func
) (int, int*);
254 short (*v_short_func
) (int, int*);
255 signed short (*v_signed_short_func
) (int, int*);
256 unsigned short (*v_unsigned_short_func
) (int, int*);
258 int (*v_int_func
) (int, int*);
259 signed int (*v_signed_int_func
) (int, int*);
260 unsigned int (*v_unsigned_int_func
) (int, int*);
262 long (*v_long_func
) (int, int*);
263 signed long (*v_signed_long_func
) (int, int*);
264 unsigned long (*v_unsigned_long_func
) (int, int*);
266 long long (*v_long_long_func
) (int, int*);
267 signed long long (*v_signed_long_long_func
) (int, int*);
268 unsigned long long (*v_unsigned_long_long_func
) (int, int*);
270 float (*v_float_func
) (int, int*);
271 double (*v_double_func
) (int, int*);
280 use (&v_signed_char
);
281 use (&v_unsigned_char
);
284 use (&v_signed_short
);
285 use (&v_unsigned_short
);
289 use (&v_unsigned_int
);
292 use (&v_signed_long
);
293 use (&v_unsigned_long
);
296 use (&v_signed_long_long
);
297 use (&v_unsigned_long_long
);
303 use (v_signed_char_array
);
304 use (v_unsigned_char_array
);
307 use (v_signed_short_array
);
308 use (v_unsigned_short_array
);
311 use (v_signed_int_array
);
312 use (v_unsigned_int_array
);
315 use (v_signed_long_array
);
316 use (v_unsigned_long_array
);
319 use (v_double_array
);
321 use (v_char_pointer
);
322 use (v_signed_char_pointer
);
323 use (v_unsigned_char_pointer
);
325 use (v_short_pointer
);
326 use (v_signed_short_pointer
);
327 use (v_unsigned_short_pointer
);
330 use (v_signed_int_pointer
);
331 use (v_unsigned_int_pointer
);
333 use (v_long_pointer
);
334 use (v_signed_long_pointer
);
335 use (v_unsigned_long_pointer
);
337 use (v_float_pointer
);
338 use (v_double_pointer
);
340 use (v_char_pointer_pointer
);
341 use (v_signed_char_pointer_pointer
);
342 use (v_unsigned_char_pointer_pointer
);
344 use (v_short_pointer_pointer
);
345 use (v_signed_short_pointer_pointer
);
346 use (v_unsigned_short_pointer_pointer
);
348 use (v_int_pointer_pointer
);
349 use (v_signed_int_pointer_pointer
);
350 use (v_unsigned_int_pointer_pointer
);
352 use (v_long_pointer_pointer
);
353 use (v_signed_long_pointer_pointer
);
354 use (v_unsigned_long_pointer_pointer
);
356 use (v_float_pointer_pointer
);
357 use (v_double_pointer_pointer
);
359 use (v_char_array_pointer
);
360 use (v_signed_char_array_pointer
);
361 use (v_unsigned_char_array_pointer
);
363 use (v_short_array_pointer
);
364 use (v_signed_short_array_pointer
);
365 use (v_unsigned_short_array_pointer
);
367 use (v_int_array_pointer
);
368 use (v_signed_int_array_pointer
);
369 use (v_unsigned_int_array_pointer
);
371 use (v_long_array_pointer
);
372 use (v_signed_long_array_pointer
);
373 use (v_unsigned_long_array_pointer
);
375 use (v_float_array_pointer
);
376 use (v_double_array_pointer
);
378 use (v_char_pointer_array
);
379 use (v_signed_char_pointer_array
);
380 use (v_unsigned_char_pointer_array
);
382 use (v_short_pointer_array
);
383 use (v_signed_short_pointer_array
);
384 use (v_unsigned_short_pointer_array
);
386 use (v_int_pointer_array
);
387 use (v_signed_int_pointer_array
);
388 use (v_unsigned_int_pointer_array
);
390 use (v_long_pointer_array
);
391 use (v_signed_long_pointer_array
);
392 use (v_unsigned_long_pointer_array
);
394 use (v_float_pointer_array
);
395 use (v_double_pointer_array
);
410 use (&v_signed_char_func
);
411 use (&v_unsigned_char_func
);
414 use (&v_signed_short_func
);
415 use (&v_unsigned_short_func
);
418 use (&v_signed_int_func
);
419 use (&v_unsigned_int_func
);
422 use (&v_signed_long_func
);
423 use (&v_unsigned_long_func
);
425 use (&v_long_long_func
);
426 use (&v_signed_long_long_func
);
427 use (&v_unsigned_long_long_func
);
430 use (&v_double_func
);