aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/parse.c17
-rw-r--r--gdb/parser-defs.h26
3 files changed, 33 insertions, 14 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f7813ff..99e386a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
Tue Mar 8 06:56:13 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
+ * parser-defs.h: Add "extern" to start of variable declarations so
+ we don't end up with commons.
+ * parse.c: Define these variables.
+
* irix5-nat.c (find_solib): Cast o_path to CORE_ADDR when using it
as one.
diff --git a/gdb/parse.c b/gdb/parse.c
index 38e78bb..5b18538 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -38,7 +38,22 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "command.h"
#include "language.h"
#include "parser-defs.h"
-
+
+/* Global variables declared in parser-defs.h (and commented there). */
+struct expression *expout;
+int expout_size;
+int expout_ptr;
+struct block *expression_context_block;
+struct block *innermost_block;
+struct block *block_found;
+int arglist_len;
+union type_stack_elt *type_stack;
+int type_stack_depth, type_stack_size;
+char *lexptr;
+char *namecopy;
+int paren_depth;
+int comma_terminates;
+
static void
free_funcalls PARAMS ((void));
diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h
index c03e1a2..c7bdd62 100644
--- a/gdb/parser-defs.h
+++ b/gdb/parser-defs.h
@@ -30,24 +30,24 @@ struct std_regs {
extern struct std_regs std_regs[];
extern unsigned num_std_regs;
-struct expression *expout;
-int expout_size;
-int expout_ptr;
+extern struct expression *expout;
+extern int expout_size;
+extern int expout_ptr;
/* If this is nonzero, this block is used as the lexical context
for symbol names. */
-struct block *expression_context_block;
+extern struct block *expression_context_block;
/* The innermost context required by the stack and register variables
we've encountered so far. */
-struct block *innermost_block;
+extern struct block *innermost_block;
/* The block in which the most recently discovered symbol was found. */
-struct block *block_found;
+extern struct block *block_found;
/* Number of arguments seen so far in innermost function call. */
-int arglist_len;
+extern int arglist_len;
/* A string token, either a char-string or bit-string. Char-strings are
used, for example, for the names of symbols. */
@@ -82,8 +82,8 @@ union type_stack_elt {
enum type_pieces piece;
int int_val;
};
-union type_stack_elt *type_stack;
-int type_stack_depth, type_stack_size;
+extern union type_stack_elt *type_stack;
+extern int type_stack_depth, type_stack_size;
extern void write_exp_elt PARAMS ((union exp_element));
@@ -134,7 +134,7 @@ extern struct type *follow_types PARAMS ((struct type *));
/* During parsing of a C expression, the pointer to the next character
is in this variable. */
-char *lexptr;
+extern char *lexptr;
/* Tokens that refer to names do so with explicit pointer and length,
so they can share the storage that lexptr is parsing.
@@ -145,15 +145,15 @@ char *lexptr;
namecopy is allocated once, guaranteed big enough, for each parsing. */
-char *namecopy;
+extern char *namecopy;
/* Current depth in parentheses within the expression. */
-int paren_depth;
+extern int paren_depth;
/* Nonzero means stop parsing on first comma (if not within parentheses). */
-int comma_terminates;
+extern int comma_terminates;
/* These codes indicate operator precedences for expression printing,
least tightly binding first. */