1 /* Copyright (C) 2001, 2004, 2007, 2008 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/>.
16 Please email any bugs, comments, and/or additions to this file to:
17 bug-gdb@prep.ai.mit.edu */
21 * Initial set of typed variables borrowed from ptype.c
24 #if !defined (__STDC__) && !defined (_AIX)
29 signed char v_signed_char
;
30 unsigned char v_unsigned_char
;
33 signed short v_signed_short
;
34 unsigned short v_unsigned_short
;
37 signed int v_signed_int
;
38 unsigned int v_unsigned_int
;
41 signed long v_signed_long
;
42 unsigned long v_unsigned_long
;
44 long long v_long_long
;
45 signed long long v_signed_long_long
;
46 unsigned long long v_unsigned_long_long
;
52 * Now some derived types, which are arrays, functions-returning,
53 * pointers, structures, unions, and enumerations.
59 signed char v_signed_char_array
[2];
60 unsigned char v_unsigned_char_array
[2];
62 short v_short_array
[2];
63 signed short v_signed_short_array
[2];
64 unsigned short v_unsigned_short_array
[2];
67 signed int v_signed_int_array
[2];
68 unsigned int v_unsigned_int_array
[2];
71 signed long v_signed_long_array
[2];
72 unsigned long v_unsigned_long_array
[2];
74 float v_float_array
[2];
75 double v_double_array
[2];
78 typedef char t_char_array
[];
80 /**** pointers *******/
83 signed char *v_signed_char_pointer
;
84 unsigned char *v_unsigned_char_pointer
;
86 short *v_short_pointer
;
87 signed short *v_signed_short_pointer
;
88 unsigned short *v_unsigned_short_pointer
;
91 signed int *v_signed_int_pointer
;
92 unsigned int *v_unsigned_int_pointer
;
95 signed long *v_signed_long_pointer
;
96 unsigned long *v_unsigned_long_pointer
;
98 float *v_float_pointer
;
99 double *v_double_pointer
;
101 char **v_char_pointer_pointer
;
102 signed char **v_signed_char_pointer_pointer
;
103 unsigned char **v_unsigned_char_pointer_pointer
;
105 short **v_short_pointer_pointer
;
106 signed short **v_signed_short_pointer_pointer
;
107 unsigned short **v_unsigned_short_pointer_pointer
;
109 int **v_int_pointer_pointer
;
110 signed int **v_signed_int_pointer_pointer
;
111 unsigned int **v_unsigned_int_pointer_pointer
;
113 long **v_long_pointer_pointer
;
114 signed long **v_signed_long_pointer_pointer
;
115 unsigned long **v_unsigned_long_pointer_pointer
;
117 float **v_float_pointer_pointer
;
118 double **v_double_pointer_pointer
;
120 /**** pointers to arrays, arrays of pointers *******/
122 char *v_char_array_pointer
[2];
123 signed char *v_signed_char_array_pointer
[2];
124 unsigned char *v_unsigned_char_array_pointer
[2];
126 short *v_short_array_pointer
[2];
127 signed short *v_signed_short_array_pointer
[2];
128 unsigned short *v_unsigned_short_array_pointer
[2];
130 int *v_int_array_pointer
[2];
131 signed int *v_signed_int_array_pointer
[2];
132 unsigned int *v_unsigned_int_array_pointer
[2];
134 long *v_long_array_pointer
[2];
135 signed long *v_signed_long_array_pointer
[2];
136 unsigned long *v_unsigned_long_array_pointer
[2];
138 float *v_float_array_pointer
[2];
139 double *v_double_array_pointer
[2];
141 char (*v_char_pointer_array
)[2];
142 signed char (*v_signed_char_pointer_array
)[2];
143 unsigned char (*v_unsigned_char_pointer_array
)[2];
145 short (*v_short_pointer_array
)[2];
146 signed short (*v_signed_short_pointer_array
)[2];
147 unsigned short (*v_unsigned_short_pointer_array
)[2];
149 int (*v_int_pointer_array
)[2];
150 signed int (*v_signed_int_pointer_array
)[2];
151 unsigned int (*v_unsigned_int_pointer_array
)[2];
153 long (*v_long_pointer_array
)[2];
154 signed long (*v_signed_long_pointer_array
)[2];
155 unsigned long (*v_unsigned_long_pointer_array
)[2];
157 float (*v_float_pointer_array
)[2];
158 double (*v_double_pointer_array
)[2];
161 /**** structs *******/
165 short v_short_member
;
168 float v_float_member
;
169 double v_double_member
;
172 struct t_struct
*v_t_struct_p
;
176 short v_short_member
;
179 float v_float_member
;
180 double v_double_member
;
183 /* typedef'd struct without a tag. */
185 double v_double_member
;
188 /* GCC seems to want a variable of this type, or else it won't put out
192 /**** unions *******/
196 short v_short_member
;
199 float v_float_member
;
200 double v_double_member
;
205 short v_short_member
;
208 float v_float_member
;
209 double v_double_member
;
212 /* typedef'd union without a tag. */
214 double v_double_member
;
217 /* GCC seems to want a variable of this type, or else it won't put out
221 /**** Enumerations *******/
224 /* Work around the bug for compilers which don't put out the right stabs. */
225 #if __GNUC__ < 2 && !defined (_AIX)
228 {red1
, green1
, blue1
} primary1
;
230 enum {red
, green
, blue
} primary
;
231 enum colors
{yellow
, purple
, pink
} nonprimary
;
233 enum {chevy
, ford
} clunker
;
234 enum cars
{bmw
, porsche
} sportscar
;
238 typedef enum {FALSE
, TRUE
} boolean
;
240 /*note: aCC has bool type predefined with 'false' and 'true'*/
241 typedef enum bvals
{my_false
, my_true
} boolean2
;
244 enum misordered
{two
= 2, one
= 1, zero
= 0, three
= 3};
246 /* Seems like we need a variable of this type to get the type to be put
247 in the executable, at least for AIX xlc. */
248 enum misordered v_misordered
= three
;
250 /**** Function pointers *******/
252 char (*v_char_func
) (int, int*);
253 signed char (*v_signed_char_func
) (int, int*);
254 unsigned char (*v_unsigned_char_func
) (int, int*);
256 short (*v_short_func
) (int, int*);
257 signed short (*v_signed_short_func
) (int, int*);
258 unsigned short (*v_unsigned_short_func
) (int, int*);
260 int (*v_int_func
) (int, int*);
261 signed int (*v_signed_int_func
) (int, int*);
262 unsigned int (*v_unsigned_int_func
) (int, int*);
264 long (*v_long_func
) (int, int*);
265 signed long (*v_signed_long_func
) (int, int*);
266 unsigned long (*v_unsigned_long_func
) (int, int*);
268 long long (*v_long_long_func
) (int, int*);
269 signed long long (*v_signed_long_long_func
) (int, int*);
270 unsigned long long (*v_unsigned_long_long_func
) (int, int*);
272 float (*v_float_func
) (int, int*);
273 double (*v_double_func
) (int, int*);
282 use (&v_signed_char
);
283 use (&v_unsigned_char
);
286 use (&v_signed_short
);
287 use (&v_unsigned_short
);
291 use (&v_unsigned_int
);
294 use (&v_signed_long
);
295 use (&v_unsigned_long
);
298 use (&v_signed_long_long
);
299 use (&v_unsigned_long_long
);
305 use (v_signed_char_array
);
306 use (v_unsigned_char_array
);
309 use (v_signed_short_array
);
310 use (v_unsigned_short_array
);
313 use (v_signed_int_array
);
314 use (v_unsigned_int_array
);
317 use (v_signed_long_array
);
318 use (v_unsigned_long_array
);
321 use (v_double_array
);
323 use (v_char_pointer
);
324 use (v_signed_char_pointer
);
325 use (v_unsigned_char_pointer
);
327 use (v_short_pointer
);
328 use (v_signed_short_pointer
);
329 use (v_unsigned_short_pointer
);
332 use (v_signed_int_pointer
);
333 use (v_unsigned_int_pointer
);
335 use (v_long_pointer
);
336 use (v_signed_long_pointer
);
337 use (v_unsigned_long_pointer
);
339 use (v_float_pointer
);
340 use (v_double_pointer
);
342 use (v_char_pointer_pointer
);
343 use (v_signed_char_pointer_pointer
);
344 use (v_unsigned_char_pointer_pointer
);
346 use (v_short_pointer_pointer
);
347 use (v_signed_short_pointer_pointer
);
348 use (v_unsigned_short_pointer_pointer
);
350 use (v_int_pointer_pointer
);
351 use (v_signed_int_pointer_pointer
);
352 use (v_unsigned_int_pointer_pointer
);
354 use (v_long_pointer_pointer
);
355 use (v_signed_long_pointer_pointer
);
356 use (v_unsigned_long_pointer_pointer
);
358 use (v_float_pointer_pointer
);
359 use (v_double_pointer_pointer
);
361 use (v_char_array_pointer
);
362 use (v_signed_char_array_pointer
);
363 use (v_unsigned_char_array_pointer
);
365 use (v_short_array_pointer
);
366 use (v_signed_short_array_pointer
);
367 use (v_unsigned_short_array_pointer
);
369 use (v_int_array_pointer
);
370 use (v_signed_int_array_pointer
);
371 use (v_unsigned_int_array_pointer
);
373 use (v_long_array_pointer
);
374 use (v_signed_long_array_pointer
);
375 use (v_unsigned_long_array_pointer
);
377 use (v_float_array_pointer
);
378 use (v_double_array_pointer
);
380 use (v_char_pointer_array
);
381 use (v_signed_char_pointer_array
);
382 use (v_unsigned_char_pointer_array
);
384 use (v_short_pointer_array
);
385 use (v_signed_short_pointer_array
);
386 use (v_unsigned_short_pointer_array
);
388 use (v_int_pointer_array
);
389 use (v_signed_int_pointer_array
);
390 use (v_unsigned_int_pointer_array
);
392 use (v_long_pointer_array
);
393 use (v_signed_long_pointer_array
);
394 use (v_unsigned_long_pointer_array
);
396 use (v_float_pointer_array
);
397 use (v_double_pointer_array
);
412 use (&v_signed_char_func
);
413 use (&v_unsigned_char_func
);
416 use (&v_signed_short_func
);
417 use (&v_unsigned_short_func
);
420 use (&v_signed_int_func
);
421 use (&v_unsigned_int_func
);
424 use (&v_signed_long_func
);
425 use (&v_unsigned_long_func
);
427 use (&v_long_long_func
);
428 use (&v_signed_long_long_func
);
429 use (&v_unsigned_long_long_func
);
432 use (&v_double_func
);