diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-01-27 01:23:50 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-01-27 01:23:50 +0000 |
commit | d92f3f08532e6db15a10edbb7214e1b1d2b5d9a1 (patch) | |
tree | 9f35a22a1ac44d5ee548b2da9f8f17bd28903810 /gdb/parse.c | |
parent | 5e678752031189556550c3faa3e27be9c628659a (diff) | |
download | gdb-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.c | 15 |
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); } |