2006-02-16 Fred Fish <fnf@specifix.com>
authorFred Fish <fnf@specifix.com>
Sat, 18 Feb 2006 20:01:17 +0000 (20:01 +0000)
committerFred Fish <fnf@specifix.com>
Sat, 18 Feb 2006 20:01:17 +0000 (20:01 +0000)
* gdb.base/whatis.c: Define variables using typedefs char_addr,
ushort_addr, and slong_addr, so the typedefs are not optimized
away.
* gdb.base/whatis.exp: Add tests using type name for struct type,
union type, enum type, and typedef.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/whatis.c
gdb/testsuite/gdb.base/whatis.exp

index dfcae4987de7b4751f6230982ad3e5b8a7e7953c..ea33a482d9ca957cd4db3cdc2d51ce89c7b2e4ed 100644 (file)
@@ -1,3 +1,11 @@
+2006-02-16  Fred Fish  <fnf@specifix.com>
+
+       * gdb.base/whatis.c: Define variables using typedefs char_addr,
+       ushort_addr, and slong_addr, so the typedefs are not optimized
+       away.
+       * gdb.base/whatis.exp: Add tests using type name for struct type,
+       union type, enum type, and typedef.
+       
 2006-02-13  Mark Kettenis  <kettenis@gnu.org>
 
        * gdb.arch/i386-prologue.exp: Add testcase for PR breakpoints/2080.
index 7d4a647781fe298ec3645174ce129d4268159cdc..5b1319fd55ceb6a7c20bab6f15499b0d9a68e2f0 100644 (file)
@@ -79,8 +79,11 @@ 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;
 
 char           *v_char_pointer;
 signed char    *v_signed_char_pointer;
index 9b41d6a2ff4a823fe1de2ea3196919a95ae47473..fdc86f98d44afbb442ede248fd772d48110b574a 100644 (file)
@@ -273,6 +273,10 @@ gdb_test "whatis v_struct1" \
     "type = struct t_struct" \
     "whatis named structure"
 
+gdb_test "whatis struct t_struct" \
+    "type = struct t_struct" \
+    "whatis named structure using type name"
+
 gdb_test "whatis v_struct2" \
     "type = struct \{$unstruct\}" \
     "whatis unnamed structure"
@@ -283,6 +287,10 @@ gdb_test "whatis v_union" \
     "type = union t_union" \
     "whatis named union"
 
+gdb_test "whatis union t_union" \
+    "type = union t_union" \
+    "whatis named union using type name"
+
 gdb_test "whatis v_union2" \
     "type = union \{$ununion\}" \
     "whatis unnamed union"
@@ -371,6 +379,10 @@ gdb_test "whatis clunker" \
     "type = enum cars" \
     "whatis enumeration"
 
+gdb_test "whatis enum cars" \
+    "type = enum cars" \
+    "whatis enumeration using type name"
+
 
 # test whatis command with nested struct and union
 gdb_test "whatis nested_su" \
@@ -402,3 +414,13 @@ gdb_test "whatis nested_su.inner_union_instance" \
 gdb_test "whatis nested_su.inner_union_instance.inner_union_int" \
     "type = int" \
     "whatis inner union member"
+
+# test whatis command with typedefs
+
+gdb_test "whatis char_addr" \
+    "type = char \\*" \
+    "whatis using typedef type name"
+
+gdb_test "whatis a_char_addr" \
+    "type = char_addr" \
+    "whatis applied to variable defined by typedef"