aboutsummaryrefslogtreecommitdiff
path: root/gdb/parse.c
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1994-01-27 01:23:50 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1994-01-27 01:23:50 +0000
commitd92f3f08532e6db15a10edbb7214e1b1d2b5d9a1 (patch)
tree9f35a22a1ac44d5ee548b2da9f8f17bd28903810 /gdb/parse.c
parent5e678752031189556550c3faa3e27be9c628659a (diff)
downloadgdb-d92f3f08532e6db15a10edbb7214e1b1d2b5d9a1.zip
gdb-d92f3f08532e6db15a10edbb7214e1b1d2b5d9a1.tar.gz
gdb-d92f3f08532e6db15a10edbb7214e1b1d2b5d9a1.tar.bz2
* parse.c (write_exp_msymbol): Use new type msymbol_addr_type instead
of builtin_type_long. It is necessary to get a type which is TARGET_PTR_BIT bits in size; builtin_type_long might not be big enough.
Diffstat (limited to 'gdb/parse.c')
-rw-r--r--gdb/parse.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/gdb/parse.c b/gdb/parse.c
index ca9bcc8..f53be7e 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -1,5 +1,5 @@
/* Parse expressions for GDB.
- Copyright (C) 1986, 1989, 1990, 1991 Free Software Foundation, Inc.
+ Copyright (C) 1986, 1989, 1990, 1991, 1994 Free Software Foundation, Inc.
Modified from expread.y by the Department of Computer Science at the
State University of New York at Buffalo, 1991.
@@ -339,6 +339,10 @@ write_exp_bitstring (str)
write_exp_elt_longcst ((LONGEST) bits);
}
+/* Type that corresponds to the address given in a minimal symbol. */
+
+static struct type *msymbol_addr_type;
+
/* Add the appropriate elements for a minimal symbol to the end of
the expression. */
@@ -349,7 +353,7 @@ write_exp_msymbol (msymbol, text_symbol_type, data_symbol_type)
struct type *data_symbol_type;
{
write_exp_elt_opcode (OP_LONG);
- write_exp_elt_type (builtin_type_long);
+ write_exp_elt_type (msymbol_addr_type);
write_exp_elt_longcst ((LONGEST) SYMBOL_VALUE_ADDRESS (msymbol));
write_exp_elt_opcode (OP_LONG);
@@ -860,4 +864,11 @@ _initialize_parse ()
type_stack_depth = 0;
type_stack = (union type_stack_elt *)
xmalloc (type_stack_size * sizeof (*type_stack));
+
+ /* We don't worry too much about what the name of this type is
+ because the name should rarely appear in output to the user. */
+
+ msymbol_addr_type =
+ init_type (TYPE_CODE_PTR, TARGET_PTR_BIT / HOST_CHAR_BIT, 0,
+ "void *", NULL);
}