📄 cvexpr.c
字号:
/* Copyright (C) 2001, 2004 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Please email any bugs, comments, and/or additions to this file to: bug-gdb@prep.ai.mit.edu *//* * Initial set of typed variables borrowed from ptype.c */#if !defined (__STDC__) && !defined (_AIX)#define signed /**/#endifchar v_char;signed char v_signed_char;unsigned char v_unsigned_char;short v_short;signed short v_signed_short;unsigned short v_unsigned_short;int v_int;signed int v_signed_int;unsigned int v_unsigned_int;long v_long;signed long v_signed_long;unsigned long v_unsigned_long;long long v_long_long;signed long long v_signed_long_long;unsigned long long v_unsigned_long_long;float v_float;double v_double;/* * Now some derived types, which are arrays, functions-returning, * pointers, structures, unions, and enumerations. *//**** arrays *******/char v_char_array[2];signed char v_signed_char_array[2];unsigned char v_unsigned_char_array[2];short v_short_array[2];signed short v_signed_short_array[2];unsigned short v_unsigned_short_array[2];int v_int_array[2];signed int v_signed_int_array[2];unsigned int v_unsigned_int_array[2];long v_long_array[2];signed long v_signed_long_array[2];unsigned long v_unsigned_long_array[2];float v_float_array[2];double v_double_array[2];/* PR 3742 */typedef char t_char_array[];/**** pointers *******/char *v_char_pointer;signed char *v_signed_char_pointer;unsigned char *v_unsigned_char_pointer;short *v_short_pointer;signed short *v_signed_short_pointer;unsigned short *v_unsigned_short_pointer;int *v_int_pointer;signed int *v_signed_int_pointer;unsigned int *v_unsigned_int_pointer;long *v_long_pointer;signed long *v_signed_long_pointer;unsigned long *v_unsigned_long_pointer;float *v_float_pointer;double *v_double_pointer;char **v_char_pointer_pointer;signed char **v_signed_char_pointer_pointer;unsigned char **v_unsigned_char_pointer_pointer;short **v_short_pointer_pointer;signed short **v_signed_short_pointer_pointer;unsigned short **v_unsigned_short_pointer_pointer;int **v_int_pointer_pointer;signed int **v_signed_int_pointer_pointer;unsigned int **v_unsigned_int_pointer_pointer;long **v_long_pointer_pointer;signed long **v_signed_long_pointer_pointer;unsigned long **v_unsigned_long_pointer_pointer;float **v_float_pointer_pointer;double **v_double_pointer_pointer;/**** pointers to arrays, arrays of pointers *******/char *v_char_array_pointer[2];signed char *v_signed_char_array_pointer[2];unsigned char *v_unsigned_char_array_pointer[2];short *v_short_array_pointer[2];signed short *v_signed_short_array_pointer[2];unsigned short *v_unsigned_short_array_pointer[2];int *v_int_array_pointer[2];signed int *v_signed_int_array_pointer[2];unsigned int *v_unsigned_int_array_pointer[2];long *v_long_array_pointer[2];signed long *v_signed_long_array_pointer[2];unsigned long *v_unsigned_long_array_pointer[2];float *v_float_array_pointer[2];double *v_double_array_pointer[2];char (*v_char_pointer_array)[2];signed char (*v_signed_char_pointer_array)[2];unsigned char (*v_unsigned_char_pointer_array)[2];short (*v_short_pointer_array)[2];signed short (*v_signed_short_pointer_array)[2];unsigned short (*v_unsigned_short_pointer_array)[2];int (*v_int_pointer_array)[2];signed int (*v_signed_int_pointer_array)[2];unsigned int (*v_unsigned_int_pointer_array)[2];long (*v_long_pointer_array)[2];signed long (*v_signed_long_pointer_array)[2];unsigned long (*v_unsigned_long_pointer_array)[2];float (*v_float_pointer_array)[2];double (*v_double_pointer_array)[2];/**** structs *******/struct t_struct { char v_char_member; short v_short_member; int v_int_member; long v_long_member; float v_float_member; double v_double_member;} v_struct1;struct t_struct *v_t_struct_p;struct { char v_char_member; short v_short_member; int v_int_member; long v_long_member; float v_float_member; double v_double_member;} v_struct2;/* typedef'd struct without a tag. */typedef struct { double v_double_member; int v_int_member;} t_struct3;/* GCC seems to want a variable of this type, or else it won't put out a symbol. */t_struct3 v_struct3;/**** unions *******/union t_union { char v_char_member; short v_short_member; int v_int_member; long v_long_member; float v_float_member; double v_double_member;} v_union;union { char v_char_member; short v_short_member; int v_int_member; long v_long_member; float v_float_member; double v_double_member;} v_union2;/* typedef'd union without a tag. */typedef union { double v_double_member; int v_int_member;} t_union3;/* GCC seems to want a variable of this type, or else it won't put out a symbol. */t_union3 v_union3;/**** Enumerations *******/enum /* Work around the bug for compilers which don't put out the right stabs. */#if __GNUC__ < 2 && !defined (_AIX)primary1_tag#endif{red1, green1, blue1} primary1;enum {red, green, blue} primary;enum colors {yellow, purple, pink} nonprimary;enum {chevy, ford} clunker;enum cars {bmw, porsche} sportscar;#undef FALSE#undef TRUEtypedef enum {FALSE, TRUE} boolean;boolean v_boolean;/*note: aCC has bool type predefined with 'false' and 'true'*/typedef enum bvals {my_false, my_true} boolean2;boolean2 v_boolean2;enum misordered {two = 2, one = 1, zero = 0, three = 3};/* Seems like we need a variable of this type to get the type to be put in the executable, at least for AIX xlc. */enum misordered v_misordered = three;/**** Function pointers *******/char (*v_char_func) (int, int*);signed char (*v_signed_char_func) (int, int*);unsigned char (*v_unsigned_char_func) (int, int*);short (*v_short_func) (int, int*);signed short (*v_signed_short_func) (int, int*);unsigned short (*v_unsigned_short_func) (int, int*);int (*v_int_func) (int, int*);signed int (*v_signed_int_func) (int, int*);unsigned int (*v_unsigned_int_func) (int, int*);long (*v_long_func) (int, int*);signed long (*v_signed_long_func) (int, int*);unsigned long (*v_unsigned_long_func) (int, int*);long long (*v_long_long_func) (int, int*);signed long long (*v_signed_long_long_func) (int, int*);unsigned long long (*v_unsigned_long_long_func) (int, int*);float (*v_float_func) (int, int*);double (*v_double_func) (int, int*);void use (void *p){}int main (){ use (&v_char); use (&v_signed_char); use (&v_unsigned_char); use (&v_short); use (&v_signed_short); use (&v_unsigned_short); use (&v_int); use (&v_signed_int); use (&v_unsigned_int); use (&v_long); use (&v_signed_long); use (&v_unsigned_long); use (&v_long_long); use (&v_signed_long_long); use (&v_unsigned_long_long); use (&v_float); use (&v_double); use (v_char_array); use (v_signed_char_array); use (v_unsigned_char_array); use (v_short_array); use (v_signed_short_array); use (v_unsigned_short_array); use (v_int_array); use (v_signed_int_array); use (v_unsigned_int_array); use (v_long_array); use (v_signed_long_array); use (v_unsigned_long_array); use (v_float_array); use (v_double_array); use (v_char_pointer); use (v_signed_char_pointer); use (v_unsigned_char_pointer); use (v_short_pointer); use (v_signed_short_pointer); use (v_unsigned_short_pointer); use (v_int_pointer); use (v_signed_int_pointer); use (v_unsigned_int_pointer); use (v_long_pointer); use (v_signed_long_pointer); use (v_unsigned_long_pointer); use (v_float_pointer); use (v_double_pointer); use (v_char_pointer_pointer); use (v_signed_char_pointer_pointer); use (v_unsigned_char_pointer_pointer); use (v_short_pointer_pointer); use (v_signed_short_pointer_pointer); use (v_unsigned_short_pointer_pointer); use (v_int_pointer_pointer); use (v_signed_int_pointer_pointer); use (v_unsigned_int_pointer_pointer); use (v_long_pointer_pointer); use (v_signed_long_pointer_pointer); use (v_unsigned_long_pointer_pointer); use (v_float_pointer_pointer); use (v_double_pointer_pointer); use (v_char_array_pointer); use (v_signed_char_array_pointer); use (v_unsigned_char_array_pointer); use (v_short_array_pointer); use (v_signed_short_array_pointer); use (v_unsigned_short_array_pointer); use (v_int_array_pointer); use (v_signed_int_array_pointer); use (v_unsigned_int_array_pointer); use (v_long_array_pointer); use (v_signed_long_array_pointer); use (v_unsigned_long_array_pointer); use (v_float_array_pointer); use (v_double_array_pointer); use (v_char_pointer_array); use (v_signed_char_pointer_array); use (v_unsigned_char_pointer_array); use (v_short_pointer_array); use (v_signed_short_pointer_array); use (v_unsigned_short_pointer_array); use (v_int_pointer_array); use (v_signed_int_pointer_array); use (v_unsigned_int_pointer_array); use (v_long_pointer_array); use (v_signed_long_pointer_array); use (v_unsigned_long_pointer_array); use (v_float_pointer_array); use (v_double_pointer_array); use (&v_struct1); use (&v_struct2); use (&v_struct3); use (&v_union); use (&v_union2); use (&v_union3); use (&v_boolean); use (&v_boolean2); use (&v_misordered); use (&v_char_func); use (&v_signed_char_func); use (&v_unsigned_char_func); use (&v_short_func); use (&v_signed_short_func); use (&v_unsigned_short_func); use (&v_int_func); use (&v_signed_int_func); use (&v_unsigned_int_func); use (&v_long_func); use (&v_signed_long_func); use (&v_unsigned_long_func); use (&v_long_long_func); use (&v_signed_long_long_func); use (&v_unsigned_long_long_func); use (&v_float_func); use (&v_double_func);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -