+2007-10-09 Pedro Alves <pedro_alves@portugalmail.pt>
+
+ * gdb.base/whatis.c (v_long_long, v_signed_long_long)
+ (v_unsigned_long_long, v_long_long_array)
+ (v_signed_long_long_array, v_unsigned_long_long_array)
+ (slong_long_addr, a_slong_long_addr, v_long_long_pointer)
+ (v_signed_long_long_pointer, v_unsigned_long_long_pointer)
+ [!NO_LONG_LONG]: New.
+ (t_struct, v_struct2, t_union, v_union2) [!NO_LONG_LONG]: Add
+ v_long_long_member.
+
+ (v_long_long_func, v_signed_long_long_func)
+ (v_unsigned_long_long_func) [!NO_LONG_LONG]: New.
+ (main) [!NO_LONG_LONG]: Initialize long long variants.
+
+ * gdb.base/whatis.exp: If board file requests no_long_long, build
+ test with NO_LONG_LONG defined. Test long long, signed long long,
+ and unsigned long long variants but only if board file doesn't
+ disable it.
+
2007-10-08 Pierre Muller <muller@ics.u-strasbg.fr>
Daniel Jacobowitz <dan@codesourcery.com>
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];
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); }
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;
set prms_id 0
set bug_id 0
+if [target_info exists no_long_long] {
+ set exec_opts [list debug additional_flags=-DNO_LONG_LONG]
+} else {
+ set exec_opts [list debug]
+}
+
set testfile whatis
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $exec_opts] != "" } {
untested whatis.exp
return -1
}
"type = (unsigned long|long unsigned int)" \
"whatis unsigned long"
+
+if ![target_info exists no_long_long] {
+ gdb_test "whatis v_unsigned_long_long" \
+ "type = (unsigned long long|long long unsigned int)" \
+ "whatis unsigned long long"
+}
+
gdb_test "whatis v_float" \
"type = float" \
"whatis float"
"type = (unsigned (int|long|long int)|long unsigned int) \\\[2\\\]" \
"whatis unsigned long array"
+if ![target_info exists no_long_long] {
+ gdb_test "whatis v_unsigned_long_long_array" \
+ "type = (unsigned long long|long long unsigned int) \\\[2\\\]" \
+ "whatis unsigned long array"
+}
+
gdb_test "whatis v_float_array" \
"type = float \\\[2\\\]" \
"whatis float array"
"type = (unsigned (int|long|long int)|long unsigned int) \\*" \
"whatis unsigned long pointer"
+if ![target_info exists no_long_long] {
+ gdb_test "whatis v_long_long_pointer" \
+ "type = long long(| int) \\*" \
+ "whatis long long pointer"
+
+ gdb_test "whatis v_signed_long_long_pointer" \
+ "type = (signed |)long long(| int) \\*" \
+ "whatis signed long long pointer"
+
+ gdb_test "whatis v_unsigned_long_long_pointer" \
+ "type = (unsigned long long|long long unsigned int) \\*" \
+ "whatis unsigned long long pointer"
+}
+
gdb_test "whatis v_float_pointer" \
"type = float \\*" \
"whatis float pointer"
"type = (unsigned (int|long|long int)|long unsigned int) \\($void\\)" \
"whatis unsigned long function"
+if ![target_info exists no_long_long] {
+ gdb_test "whatis v_long_long_func" \
+ "type = long long(| int) \\($void\\)" \
+ "whatis long long function"
+
+ gdb_test "whatis v_signed_long_long_func" \
+ "type = (signed |)long long(| int) \\($void\\)" \
+ "whatis signed long long function"
+
+ gdb_test "whatis v_unsigned_long_long_func" \
+ "type = (unsigned long long(| int)|long long unsigned int) \\($void\\)" \
+ "whatis unsigned long long function"
+}
+
# Sun /bin/cc calls this a function returning double.
if {!$gcc_compiled} then {setup_xfail "*-sun-sunos4*"}
gdb_test "whatis v_float_func" \