diff options
author | Fred Fish <fnf@specifix.com> | 1993-02-03 00:28:54 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 1993-02-03 00:28:54 +0000 |
commit | 9da75ad32ed2e8a5e8dad4ef019d7c31fe8c209e (patch) | |
tree | 556f55195aa13b08e730abce9b4d876388da1866 /gdb/parse.c | |
parent | 58bcc08c6024f31c1f495ec2cdcd3248daee1930 (diff) | |
download | gdb-9da75ad32ed2e8a5e8dad4ef019d7c31fe8c209e.zip gdb-9da75ad32ed2e8a5e8dad4ef019d7c31fe8c209e.tar.gz gdb-9da75ad32ed2e8a5e8dad4ef019d7c31fe8c209e.tar.bz2 |
* c-exp.y (lcurly, rcurly): New nonterminals.
* c-exp.y (exp): Use lcurly and rcurly for arrays and UNOP_MEMVAL
constructs.
* parse.c (free_funcalls): Moved prototype from parser-defs.h,
made function static.
* parse.c (struct funcall): Moved struct def from parser-defs.h.
* parse.c (funcall_chain): Moved from parser-defs.h, made static.
* parse.c (start_arglist):
* parser-defs.h (free_funcalls): Moved prototype to parse.c.
* parser-defs.h (struct funcall): Moved struct def to parse.c.
* parser-defs.h (funcall_chain): Moved to parse.c.
* printcmd.c (print_frame_nameless_args): Fix prototype.
* tm-mips.h (setup_arbitrary_frame): Fix prototype.
* tm-sparc.h (setup_arbitrary_frame): Fix prototype.
* valops.c (typecmp): Moved prototype from values.h.
* value.h (typecmp): Moved prototype to valops.c, made static.
**** start-sanitize-chill ****
* ch-exp.y (yylex): Change way control sequences are disabled.
**** end-sanitize-chill ****
Diffstat (limited to 'gdb/parse.c')
-rw-r--r-- | gdb/parse.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/gdb/parse.c b/gdb/parse.c index 9d96975..4cec13b 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -39,6 +39,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "parser-defs.h" static void +free_funcalls PARAMS ((void)); + +static void prefixify_expression PARAMS ((struct expression *)); static int @@ -47,6 +50,17 @@ length_of_subexp PARAMS ((struct expression *, int)); static void prefixify_subexp PARAMS ((struct expression *, struct expression *, int, int)); +/* Data structure for saving values of arglist_len for function calls whose + arguments contain other function calls. */ + +struct funcall + { + struct funcall *next; + int arglist_len; + }; + +static struct funcall *funcall_chain; + /* Assign machine-independent names to certain registers (unless overridden by the REGISTER_NAMES table) */ @@ -82,8 +96,9 @@ unsigned num_std_regs = (sizeof std_regs / sizeof std_regs[0]); void start_arglist () { - register struct funcall *new = (struct funcall *) xmalloc (sizeof (struct funcall)); + register struct funcall *new; + new = (struct funcall *) xmalloc (sizeof (struct funcall)); new->next = funcall_chain; new->arglist_len = arglist_len; arglist_len = 0; @@ -107,7 +122,7 @@ end_arglist () /* Free everything in the funcall chain. Used when there is an error inside parsing. */ -void +static void free_funcalls () { register struct funcall *call, *next; |