* parse.c (write_exp_msymbol): Use new type msymbol_addr_type instead
authorJim Kingdon <jkingdon@engr.sgi.com>
Thu, 27 Jan 1994 01:23:50 +0000 (01:23 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Thu, 27 Jan 1994 01:23:50 +0000 (01:23 +0000)
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.

gdb/ChangeLog
gdb/parse.c

index 36bae5238d6b592f4c1513b03de1b5cac9bf1c14..7bfbdfcec9a11248c6c3b84e0924f21c83292aeb 100644 (file)
@@ -1,5 +1,9 @@
 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.
index ca9bcc8c9b011fd36689b640eedad801c5095ff9..f53be7ea0639dcbb892054affd7cb8f9bc3477c8 100644 (file)
@@ -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);
 }