Wed Jan 26 10:57:21 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
+ * 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.
+
Fix many sins which will come up in 32 bit x 64 bit GDB, and
various miscellaneous things discovered in the process:
* printcmd.c, defs.h (print_address_numeric): New function.
/* 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.
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. */
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);
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);
}