This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH]: ptype of pointer to typedef

Given a test program like this:

typedef char (my_char_array) [4];
my_char_array array = {'a', 'b', 'c', 'd'};
my_char_array *array_p = &array;

typedef char my_char;
my_char array2 [4] = {'a', 'b', 'c', 'd'};
my_char (*array2_p)[4] = &array2;

main ( void )
  return 0;

Then in gdb:

(gdb) ptype array2_p
type = char (*)[4]
(gdb) ptype array_p
type = char *)[4]

Notice in the array_p case, the missing "(" character.

Patch below include a fix, and a test case. The test case builds on an existing test that was marked as xfail in a few cases, I've extended the xfail to cover the new case I've added, but I have no way to check if this is the right thing to do or not, I'm happy to change the patch if anyone has an opinion.

Ok to commit?



2012-09-03 Andrew Bugess <>

	* c-typeprint.c (c_type_print_varspec_prefix): Pass through the
	passed_a_ptr flag when displaying typedef types.

diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c
index c2a775a..b51ced8 100644
--- a/gdb/c-typeprint.c
+++ b/gdb/c-typeprint.c
@@ -306,7 +306,7 @@ c_type_print_varspec_prefix (struct type *type,

       c_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
-                                  stream, show, 0, 0);
+                                  stream, show, passed_a_ptr, 0);



2012-09-03 Andrew Burgess <>

* gdb.base/ptype.exp: Test ptype on a pointer to a typedef.

diff --git a/gdb/testsuite/gdb.base/ptype.exp b/gdb/testsuite/gdb.base/ptype.exp
index c7bede2..0eef17d 100644
--- a/gdb/testsuite/gdb.base/ptype.exp
+++ b/gdb/testsuite/gdb.base/ptype.exp
@@ -370,6 +370,10 @@ if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "i*86-*
if {$hp_aCC_compiler} {setup_xfail "hppa*-*-*"}
gdb_test "ptype t_char_array" "type = (|unsigned )char \\\[0?\\\]"

+if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" "i*86-*-sysv4*" }
+if {$hp_aCC_compiler} {setup_xfail "hppa*-*-*"}
+gdb_test "ptype pv_char_array" "type = (|unsigned )char \\(\\*\\)\\\[0?\\\]"
## test ptype command with pointers

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]