From: Joel Brobecker Date: Sat, 22 Dec 2007 05:28:19 +0000 (+0000) Subject: * gdb.base/ptype.c (highest): New struct type. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=919809b9731914a489162a428b55d17f0badee14;p=binutils-gdb.git * 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. --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 32d59f6dc43..a340fff4285 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2007-12-22 Joel Brobecker + + * 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 * (gdb.base/watch_thread_num.exp): Add breakpoint at thread_function diff --git a/gdb/testsuite/gdb.base/ptype.c b/gdb/testsuite/gdb.base/ptype.c index b8471399613..46769ad54d8 100644 --- a/gdb/testsuite/gdb.base/ptype.c +++ b/gdb/testsuite/gdb.base/ptype.c @@ -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; diff --git a/gdb/testsuite/gdb.base/ptype.exp b/gdb/testsuite/gdb.base/ptype.exp index e65fdc73dcb..3273c37993b 100644 --- a/gdb/testsuite/gdb.base/ptype.exp +++ b/gdb/testsuite/gdb.base/ptype.exp @@ -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