1 /* Copyright (C) 2001, 2004, 2007-2012 Free Software Foundation, Inc.
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 3 of the License, or
6 (at your option) any later version.
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with this program. If not, see <http://www.gnu.org/licenses/>. */
18 * Initial set of typed variables borrowed from ptype.c
21 #if !defined (__STDC__) && !defined (_AIX)
26 signed char v_signed_char;
27 unsigned char v_unsigned_char;
30 signed short v_signed_short;
31 unsigned short v_unsigned_short;
34 signed int v_signed_int;
35 unsigned int v_unsigned_int;
38 signed long v_signed_long;
39 unsigned long v_unsigned_long;
41 long long v_long_long;
42 signed long long v_signed_long_long;
43 unsigned long long v_unsigned_long_long;
49 * Now some derived types, which are arrays, functions-returning,
50 * pointers, structures, unions, and enumerations.
56 signed char v_signed_char_array[2];
57 unsigned char v_unsigned_char_array[2];
59 short v_short_array[2];
60 signed short v_signed_short_array[2];
61 unsigned short v_unsigned_short_array[2];
64 signed int v_signed_int_array[2];
65 unsigned int v_unsigned_int_array[2];
68 signed long v_signed_long_array[2];
69 unsigned long v_unsigned_long_array[2];
71 float v_float_array[2];
72 double v_double_array[2];
75 typedef char t_char_array[];
77 /**** pointers *******/
80 signed char *v_signed_char_pointer;
81 unsigned char *v_unsigned_char_pointer;
83 short *v_short_pointer;
84 signed short *v_signed_short_pointer;
85 unsigned short *v_unsigned_short_pointer;
88 signed int *v_signed_int_pointer;
89 unsigned int *v_unsigned_int_pointer;
92 signed long *v_signed_long_pointer;
93 unsigned long *v_unsigned_long_pointer;
95 float *v_float_pointer;
96 double *v_double_pointer;
98 char **v_char_pointer_pointer;
99 signed char **v_signed_char_pointer_pointer;
100 unsigned char **v_unsigned_char_pointer_pointer;
102 short **v_short_pointer_pointer;
103 signed short **v_signed_short_pointer_pointer;
104 unsigned short **v_unsigned_short_pointer_pointer;
106 int **v_int_pointer_pointer;
107 signed int **v_signed_int_pointer_pointer;
108 unsigned int **v_unsigned_int_pointer_pointer;
110 long **v_long_pointer_pointer;
111 signed long **v_signed_long_pointer_pointer;
112 unsigned long **v_unsigned_long_pointer_pointer;
114 float **v_float_pointer_pointer;
115 double **v_double_pointer_pointer;
117 /**** pointers to arrays, arrays of pointers *******/
119 char *v_char_array_pointer[2];
120 signed char *v_signed_char_array_pointer[2];
121 unsigned char *v_unsigned_char_array_pointer[2];
123 short *v_short_array_pointer[2];
124 signed short *v_signed_short_array_pointer[2];
125 unsigned short *v_unsigned_short_array_pointer[2];
127 int *v_int_array_pointer[2];
128 signed int *v_signed_int_array_pointer[2];
129 unsigned int *v_unsigned_int_array_pointer[2];
131 long *v_long_array_pointer[2];
132 signed long *v_signed_long_array_pointer[2];
133 unsigned long *v_unsigned_long_array_pointer[2];
135 float *v_float_array_pointer[2];
136 double *v_double_array_pointer[2];
138 char (*v_char_pointer_array)[2];
139 signed char (*v_signed_char_pointer_array)[2];
140 unsigned char (*v_unsigned_char_pointer_array)[2];
142 short (*v_short_pointer_array)[2];
143 signed short (*v_signed_short_pointer_array)[2];
144 unsigned short (*v_unsigned_short_pointer_array)[2];
146 int (*v_int_pointer_array)[2];
147 signed int (*v_signed_int_pointer_array)[2];
148 unsigned int (*v_unsigned_int_pointer_array)[2];
150 long (*v_long_pointer_array)[2];
151 signed long (*v_signed_long_pointer_array)[2];
152 unsigned long (*v_unsigned_long_pointer_array)[2];
154 float (*v_float_pointer_array)[2];
155 double (*v_double_pointer_array)[2];
158 /**** structs *******/
162 short v_short_member;
165 float v_float_member;
166 double v_double_member;
169 struct t_struct *v_t_struct_p;
173 short v_short_member;
176 float v_float_member;
177 double v_double_member;
180 /* typedef'd struct without a tag. */
182 double v_double_member;
185 /* GCC seems to want a variable of this type, or else it won't put out
189 /**** unions *******/
193 short v_short_member;
196 float v_float_member;
197 double v_double_member;
202 short v_short_member;
205 float v_float_member;
206 double v_double_member;
209 /* typedef'd union without a tag. */
211 double v_double_member;
214 /* GCC seems to want a variable of this type, or else it won't put out
218 /**** Enumerations *******/
221 /* Work around the bug for compilers which don't put out the right stabs. */
222 #if __GNUC__ < 2 && !defined (_AIX)
225 {red1, green1, blue1} primary1;
227 enum {red, green, blue} primary;
228 enum colors {yellow, purple, pink} nonprimary;
230 enum {chevy, ford} clunker;
231 enum cars {bmw, porsche} sportscar;
235 typedef enum {FALSE, TRUE} boolean;
237 /*note: aCC has bool type predefined with 'false' and 'true'*/
238 typedef enum bvals {my_false, my_true} boolean2;
241 enum misordered {two = 2, one = 1, zero = 0, three = 3};
243 /* Seems like we need a variable of this type to get the type to be put
244 in the executable, at least for AIX xlc. */
245 enum misordered v_misordered = three;
247 /**** Function pointers *******/
249 char (*v_char_func) (int, int*);
250 signed char (*v_signed_char_func) (int, int*);
251 unsigned char (*v_unsigned_char_func) (int, int*);
253 short (*v_short_func) (int, int*);
254 signed short (*v_signed_short_func) (int, int*);
255 unsigned short (*v_unsigned_short_func) (int, int*);
257 int (*v_int_func) (int, int*);
258 signed int (*v_signed_int_func) (int, int*);
259 unsigned int (*v_unsigned_int_func) (int, int*);
261 long (*v_long_func) (int, int*);
262 signed long (*v_signed_long_func) (int, int*);
263 unsigned long (*v_unsigned_long_func) (int, int*);
265 long long (*v_long_long_func) (int, int*);
266 signed long long (*v_signed_long_long_func) (int, int*);
267 unsigned long long (*v_unsigned_long_long_func) (int, int*);
269 float (*v_float_func) (int, int*);
270 double (*v_double_func) (int, int*);
279 use (&v_signed_char);
280 use (&v_unsigned_char);
283 use (&v_signed_short);
284 use (&v_unsigned_short);
288 use (&v_unsigned_int);
291 use (&v_signed_long);
292 use (&v_unsigned_long);
295 use (&v_signed_long_long);
296 use (&v_unsigned_long_long);
302 use (v_signed_char_array);
303 use (v_unsigned_char_array);
306 use (v_signed_short_array);
307 use (v_unsigned_short_array);
310 use (v_signed_int_array);
311 use (v_unsigned_int_array);
314 use (v_signed_long_array);
315 use (v_unsigned_long_array);
318 use (v_double_array);
320 use (v_char_pointer);
321 use (v_signed_char_pointer);
322 use (v_unsigned_char_pointer);
324 use (v_short_pointer);
325 use (v_signed_short_pointer);
326 use (v_unsigned_short_pointer);
329 use (v_signed_int_pointer);
330 use (v_unsigned_int_pointer);
332 use (v_long_pointer);
333 use (v_signed_long_pointer);
334 use (v_unsigned_long_pointer);
336 use (v_float_pointer);
337 use (v_double_pointer);
339 use (v_char_pointer_pointer);
340 use (v_signed_char_pointer_pointer);
341 use (v_unsigned_char_pointer_pointer);
343 use (v_short_pointer_pointer);
344 use (v_signed_short_pointer_pointer);
345 use (v_unsigned_short_pointer_pointer);
347 use (v_int_pointer_pointer);
348 use (v_signed_int_pointer_pointer);
349 use (v_unsigned_int_pointer_pointer);
351 use (v_long_pointer_pointer);
352 use (v_signed_long_pointer_pointer);
353 use (v_unsigned_long_pointer_pointer);
355 use (v_float_pointer_pointer);
356 use (v_double_pointer_pointer);
358 use (v_char_array_pointer);
359 use (v_signed_char_array_pointer);
360 use (v_unsigned_char_array_pointer);
362 use (v_short_array_pointer);
363 use (v_signed_short_array_pointer);
364 use (v_unsigned_short_array_pointer);
366 use (v_int_array_pointer);
367 use (v_signed_int_array_pointer);
368 use (v_unsigned_int_array_pointer);
370 use (v_long_array_pointer);
371 use (v_signed_long_array_pointer);
372 use (v_unsigned_long_array_pointer);
374 use (v_float_array_pointer);
375 use (v_double_array_pointer);
377 use (v_char_pointer_array);
378 use (v_signed_char_pointer_array);
379 use (v_unsigned_char_pointer_array);
381 use (v_short_pointer_array);
382 use (v_signed_short_pointer_array);
383 use (v_unsigned_short_pointer_array);
385 use (v_int_pointer_array);
386 use (v_signed_int_pointer_array);
387 use (v_unsigned_int_pointer_array);
389 use (v_long_pointer_array);
390 use (v_signed_long_pointer_array);
391 use (v_unsigned_long_pointer_array);
393 use (v_float_pointer_array);
394 use (v_double_pointer_array);
409 use (&v_signed_char_func);
410 use (&v_unsigned_char_func);
413 use (&v_signed_short_func);
414 use (&v_unsigned_short_func);
417 use (&v_signed_int_func);
418 use (&v_unsigned_int_func);
421 use (&v_signed_long_func);
422 use (&v_unsigned_long_func);
424 use (&v_long_long_func);
425 use (&v_signed_long_long_func);
426 use (&v_unsigned_long_long_func);
429 use (&v_double_func);