aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/whatis.exp
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2012-07-06 14:44:22 +0000
committerTom Tromey <tromey@redhat.com>2012-07-06 14:44:22 +0000
commitfcde5961ebacc85a85adcf858c751dc9c11f8d58 (patch)
treeaa3300bf1a72493745909459933cefb0256899f8 /gdb/testsuite/gdb.base/whatis.exp
parent1a7d0ce4eb4d724a3853500b45b379e746d7077a (diff)
downloadgdb-fcde5961ebacc85a85adcf858c751dc9c11f8d58.zip
gdb-fcde5961ebacc85a85adcf858c751dc9c11f8d58.tar.gz
gdb-fcde5961ebacc85a85adcf858c751dc9c11f8d58.tar.bz2
* c-exp.y (%union) <type_stack>: New field.
(abs_decl, direct_abs_decl): Use <type_stack> type. Update. (ptr_operator_ts): New production. (ptype): Update. * parse.c (type_stack_reserve): New function. (check_type_stack_depth): Use it. (pop_type_stack, append_type_stack, push_type_stack) (get_type_stack, type_stack_cleanup): New functions. (follow_types): Handle tp_type_stack. (_initialize_parse): Simplify initialization. * parser-defs.h (enum type_pieces) <tp_type_stack>: New constant. (union type_stack_elt) <stack_val>: New field. (get_type_stack, append_type_stack, push_type_stack) (type_stack_cleanup): Declare. testsuite * gdb.base/whatis.exp: Add tests.
Diffstat (limited to 'gdb/testsuite/gdb.base/whatis.exp')
-rw-r--r--gdb/testsuite/gdb.base/whatis.exp12
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/whatis.exp b/gdb/testsuite/gdb.base/whatis.exp
index dda3a02..71f2e79 100644
--- a/gdb/testsuite/gdb.base/whatis.exp
+++ b/gdb/testsuite/gdb.base/whatis.exp
@@ -479,3 +479,15 @@ gdb_test "whatis void (** const)()" \
gdb_test "whatis void (* const *)()" \
"type = void \\(\\* const \\*\\)\\(\\)" \
"whatis applied to pointer to const pointer to function"
+
+gdb_test "whatis int *(*)()" \
+ "type = int \\*\\(\\*\\)\\(\\)" \
+ "whatis applied to pointer to function returning pointer to int"
+
+gdb_test "whatis int *(**)()" \
+ "type = int \\*\\(\\*\\*\\)\\(\\)" \
+ "whatis applied to pointer to pointer to function returning pointer to int"
+
+gdb_test "whatis char (*(*)())\[23\]" \
+ "type = char \\(\\*\\(\\*\\)\\(\\)\\)\\\[23\\\]" \
+ "whatis applied to pointer to function returning pointer to array"