+/* This test program is part of GDB, the GNU debugger.
+
+ Copyright 1992-2013 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 3 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, see <http://www.gnu.org/licenses/>. */
+
/*
* Test file with lots of different types, for testing the
* "whatis" command.
* First the basic C types.
*/
-#if !(defined (__STDC__) || defined (_AIX))
-#define signed /**/
-#endif
-
char v_char;
signed char v_signed_char;
unsigned char v_unsigned_char;
signed long v_signed_long;
unsigned long v_unsigned_long;
+#ifndef NO_LONG_LONG
+long long v_long_long;
+signed long long v_signed_long_long;
+unsigned long long v_unsigned_long_long;
+#endif
+
float v_float;
double v_double;
signed long v_signed_long_array[2];
unsigned long v_unsigned_long_array[2];
+#ifndef NO_LONG_LONG
+long long v_long_long_array[2];
+signed long long v_signed_long_long_array[2];
+unsigned long long v_unsigned_long_long_array[2];
+#endif
+
float v_float_array[2];
double v_double_array[2];
a special case kludge in GDB (Unix system include files like to define
caddr_t), but for a variety of types. */
typedef char *char_addr;
+static char_addr a_char_addr;
typedef unsigned short *ushort_addr;
+static ushort_addr a_ushort_addr;
typedef signed long *slong_addr;
+static slong_addr a_slong_addr;
+#ifndef NO_LONG_LONG
+typedef signed long long *slong_long_addr;
+static slong_long_addr a_slong_long_addr;
+#endif
char *v_char_pointer;
signed char *v_signed_char_pointer;
signed long *v_signed_long_pointer;
unsigned long *v_unsigned_long_pointer;
+#ifndef NO_LONG_LONG
+long long *v_long_long_pointer;
+signed long long *v_signed_long_long_pointer;
+unsigned long long *v_unsigned_long_long_pointer;
+#endif
+
float *v_float_pointer;
double *v_double_pointer;
short v_short_member;
int v_int_member;
long v_long_member;
+#ifndef NO_LONG_LONG
+ long long v_long_long_member;
+#endif
float v_float_member;
double v_double_member;
} v_struct1;
short v_short_member;
int v_int_member;
long v_long_member;
+#ifndef NO_LONG_LONG
+ long long v_long_long_member;
+#endif
float v_float_member;
double v_double_member;
} v_struct2;
short v_short_member;
int v_int_member;
long v_long_member;
+#ifndef NO_LONG_LONG
+ long long v_long_long_member;
+#endif
float v_float_member;
double v_double_member;
} v_union;
short v_short_member;
int v_int_member;
long v_long_member;
+#ifndef NO_LONG_LONG
+ long long v_long_long_member;
+#endif
float v_float_member;
double v_double_member;
} v_union2;
signed long v_signed_long_func () { return (0); }
unsigned long v_unsigned_long_func () { return (0); }
+#ifndef NO_LONG_LONG
+long long v_long_long_func () { return (0); }
+signed long long v_signed_long_long_func () { return (0); }
+unsigned long long v_unsigned_long_long_func () { return (0); }
+#endif
+
float v_float_func () { return (0.0); }
double v_double_func () { return (0.0); }
/***********/
-main ()
+int main ()
{
-#ifdef usestubs
- set_debug_traps();
- breakpoint();
-#endif
/* Some linkers (e.g. on AIX) remove unreferenced variables,
so make sure to reference them. */
v_char = 0;
v_long = 9;
v_signed_long = 10;
v_unsigned_long = 11;
-
+
+#ifndef NO_LONG_LONG
+ v_long_long = 12;
+ v_signed_long_long = 13;
+ v_unsigned_long_long = 14;
+#endif
+
v_float = 100.0;
v_double = 200.0;
v_signed_long_array[0] = v_signed_long;
v_unsigned_long_array[0] = v_unsigned_long;
+#ifndef NO_LONG_LONG
+ v_long_long_array[0] = v_long_long;
+ v_signed_long_long_array[0] = v_signed_long_long;
+ v_unsigned_long_long_array[0] = v_unsigned_long_long;
+#endif
+
v_float_array[0] = v_float;
v_double_array[0] = v_double;
v_signed_long_pointer = &v_signed_long;
v_unsigned_long_pointer = &v_unsigned_long;
+#ifndef NO_LONG_LONG
+ v_long_long_pointer = &v_long_long;
+ v_signed_long_long_pointer = &v_signed_long_long;
+ v_unsigned_long_long_pointer = &v_unsigned_long_long;
+#endif
+
v_float_pointer = &v_float;
v_double_pointer = &v_double;