From 64b2fa0474b97ecbe2c8ddb9c16b65a717c4cb01 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Mon, 8 Oct 2007 23:15:55 +0000 Subject: 2007-10-09 Pedro Alves * 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. --- gdb/testsuite/ChangeLog | 20 +++++++++++++ gdb/testsuite/gdb.base/whatis.c | 60 ++++++++++++++++++++++++++++++++++++++- gdb/testsuite/gdb.base/whatis.exp | 49 +++++++++++++++++++++++++++++++- 3 files changed, 127 insertions(+), 2 deletions(-) (limited to 'gdb') diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 0cf23a6..61b007a 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,23 @@ +2007-10-09 Pedro Alves + + * 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 Daniel Jacobowitz diff --git a/gdb/testsuite/gdb.base/whatis.c b/gdb/testsuite/gdb.base/whatis.c index 19eb4a9..922c6eb 100644 --- a/gdb/testsuite/gdb.base/whatis.c +++ b/gdb/testsuite/gdb.base/whatis.c @@ -42,6 +42,12 @@ long v_long; 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; @@ -68,6 +74,12 @@ long v_long_array[2]; 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]; @@ -83,6 +95,10 @@ 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; @@ -100,6 +116,12 @@ long *v_long_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; @@ -110,6 +132,9 @@ struct t_struct { 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; @@ -119,6 +144,9 @@ struct { 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; @@ -130,6 +158,9 @@ union t_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_union; @@ -139,6 +170,9 @@ 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; @@ -161,6 +195,12 @@ long v_long_func () { return (0); } 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); } @@ -229,7 +269,13 @@ int main () 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; @@ -250,6 +296,12 @@ int main () 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; @@ -269,6 +321,12 @@ int main () 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; diff --git a/gdb/testsuite/gdb.base/whatis.exp b/gdb/testsuite/gdb.base/whatis.exp index d9abfc1..fa81da1 100644 --- a/gdb/testsuite/gdb.base/whatis.exp +++ b/gdb/testsuite/gdb.base/whatis.exp @@ -26,10 +26,16 @@ if $tracelevel { 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 } @@ -124,6 +130,13 @@ gdb_test "whatis v_unsigned_long" \ "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" @@ -188,6 +201,12 @@ gdb_test "whatis v_unsigned_long_array" \ "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" @@ -251,6 +270,20 @@ gdb_test "whatis v_unsigned_long_pointer" \ "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" @@ -353,6 +386,20 @@ gdb_test "whatis v_unsigned_long_func" \ "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" \ -- cgit v1.1