diff options
author | Tom Tromey <tromey@redhat.com> | 2012-07-06 14:44:22 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2012-07-06 14:44:22 +0000 |
commit | fcde5961ebacc85a85adcf858c751dc9c11f8d58 (patch) | |
tree | aa3300bf1a72493745909459933cefb0256899f8 /gdb/parser-defs.h | |
parent | 1a7d0ce4eb4d724a3853500b45b379e746d7077a (diff) | |
download | gdb-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/parser-defs.h')
-rw-r--r-- | gdb/parser-defs.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h index de283d0..0649189 100644 --- a/gdb/parser-defs.h +++ b/gdb/parser-defs.h @@ -119,13 +119,15 @@ enum type_pieces tp_function, tp_const, tp_volatile, - tp_space_identifier + tp_space_identifier, + tp_type_stack }; /* The stack can contain either an enum type_pieces or an int. */ union type_stack_elt { enum type_pieces piece; int int_val; + struct type_stack *stack_val; }; /* The type stack is an instance of this structure. */ @@ -214,6 +216,15 @@ extern enum type_pieces pop_type (void); extern int pop_type_int (void); +extern struct type_stack *get_type_stack (void); + +extern struct type_stack *append_type_stack (struct type_stack *to, + struct type_stack *from); + +extern void push_type_stack (struct type_stack *stack); + +extern void type_stack_cleanup (void *arg); + extern int length_of_subexp (struct expression *, int); extern int dump_subexp (struct expression *, struct ui_file *, int); |