aboutsummaryrefslogtreecommitdiff
path: root/gdb/parse.c
diff options
context:
space:
mode:
authorFred Fish <fnf@specifix.com>1993-02-03 00:28:54 +0000
committerFred Fish <fnf@specifix.com>1993-02-03 00:28:54 +0000
commit9da75ad32ed2e8a5e8dad4ef019d7c31fe8c209e (patch)
tree556f55195aa13b08e730abce9b4d876388da1866 /gdb/parse.c
parent58bcc08c6024f31c1f495ec2cdcd3248daee1930 (diff)
downloadgdb-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.c19
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;