* gdb.base/ptype.c (highest): New struct type.
authorJoel Brobecker <brobecker@gnat.com>
Sat, 22 Dec 2007 05:28:19 +0000 (05:28 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Sat, 22 Dec 2007 05:28:19 +0000 (05:28 +0000)
        (the_highest): New variable of that type.
        (main): Add dummy assignment to a field of variable the_highest.
        * gdb.base/ptype.exp: Test type printing of our new variable.

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

index 32d59f6dc43780e2595b513e80b2162dbf601ca5..a340fff42855407031d00198c5e4625f307df5ab 100644 (file)
@@ -1,3 +1,10 @@
+2007-12-22  Joel Brobecker  <brobecker@adacore.com>
+
+       * gdb.base/ptype.c (highest): New struct type.
+       (the_highest): New variable of that type.
+       (main): Add dummy assignment to a field of variable the_highest.
+       * gdb.base/ptype.exp: Test type printing of our new variable.
+
 2007-12-19  Pierre Muller  <muller@ics-u-strasbg.fr>
 
        * (gdb.base/watch_thread_num.exp): Add breakpoint at thread_function
index b8471399613f99b78cfbc12b521973b885beb079..46769ad54d8697ffbc4eeea84492670e5b55b5da 100644 (file)
@@ -198,6 +198,16 @@ struct outer_struct {
        long outer_long;
 } nested_su;
 
+struct highest
+{
+  int a;
+  struct
+  {
+    int b;
+    struct { int c; } anonymous_level_2;
+  } anonymous_level_1;
+} the_highest;
+
 /**** Enumerations *******/
 
 enum 
@@ -352,6 +362,8 @@ int main ()
   nested_su.outer_int = 0;
   v_t_struct_p = 0;
 
+  the_highest.a = 0;
+
   v_boolean = FALSE;
   v_boolean2 = my_false;
   return 0;
index e65fdc73dcbd2c353dca03bf4e77eb61bb8e3811..3273c37993be6ece3c0fa299832d6376efb7d42e 100644 (file)
@@ -532,6 +532,22 @@ gdb_test "ptype nested_su.inner_struct_instance.inner_int" "type = int.*" "ptype
 
 gdb_test "ptype nested_su.inner_union_instance" "type = union ${outer}inner_union \{.*\[\r\n\]    int inner_union_int;.*\[\r\n\]    (long|long int|int) inner_union_long;.*\[\r\n\]\}.*" "ptype nested union" 
 
+# Print the type description of variable the_highest, and verify that
+# the type description for the fields whose type is anonymous are
+# correctly printed (at nesting level 1 and 2).
+
+gdb_test "ptype the_highest" \
+         "type = struct highest \{.*\[\r\n\] *int a;.*\[\r\n\] *struct \{.*\[\r\n\] *int b;.*\[\r\n\] *struct \{\.\.\.\} anonymous_level_2;.*\[\r\n\] *\} anonymous_level_1;.*\[\r\n\]}.*" \
+         "ptype the_highest" 
+
+# Print the type descrption for one of the fields of variable the_highest.
+# The purpose is to verify that the type of a field that was printed above
+# as "struct {...}" is now printed in a more descriptive way (because the
+# nesting level is now one level less).
+
+gdb_test "ptype the_highest.anonymous_level_1" \
+         "type = struct \{.*\[\r\n\] *int b;.*\[\r\n\] *struct \{.*\[\r\n\] *int c;.*\[\r\n\] *\} anonymous_level_2;.*\[\r\n\]}.*" \
+         "ptype the_highest" 
 
 get_debug_format