2003-10-31 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Fri, 31 Oct 2003 22:19:12 +0000 (22:19 +0000)
committerAndrew Cagney <cagney@redhat.com>
Fri, 31 Oct 2003 22:19:12 +0000 (22:19 +0000)
* s390-tdep.c (s390_cannot_extract_struct_value_address): New
function.
(s390_gdbarch_init): Set extract_struct_value_address.
* arch-utils.c (generic_cannot_extract_struct_value_address):
Delete function.
* arch-utils.h (generic_cannot_extract_struct_value_address):
Delete definition.

gdb/ChangeLog
gdb/arch-utils.c
gdb/s390-tdep.c

index 5ee83be..b5b4a16 100644 (file)
@@ -1,3 +1,13 @@
+2003-10-31  Andrew Cagney  <cagney@redhat.com>
+
+       * s390-tdep.c (s390_cannot_extract_struct_value_address): New
+       function.
+       (s390_gdbarch_init): Set extract_struct_value_address.
+       * arch-utils.c (generic_cannot_extract_struct_value_address):
+       Delete function.
+       * arch-utils.h (generic_cannot_extract_struct_value_address):
+       Delete definition.
+
 2003-10-31  Mark Kettenis  <kettenis@gnu.org>
 
        * i386-linux-nat.c (fetch_core_registers): Remove.
index 38ad486..21c5682 100644 (file)
@@ -200,21 +200,6 @@ deprecated_register_convertible_not (int num)
 }
   
 
-/* Under some ABI's that specify the `struct convention' for returning
-   structures by value, by the time we've returned from the function,
-   the return value is sitting there in the caller's buffer, but GDB
-   has no way to find the address of that buffer.
-
-   On such architectures, use this function as your
-   extract_struct_value_address method.  When asked to a struct
-   returned by value in this fashion, GDB will print a nice error
-   message, instead of garbage.  */
-CORE_ADDR
-generic_cannot_extract_struct_value_address (char *dummy)
-{
-  return 0;
-}
-
 CORE_ADDR
 core_addr_identity (CORE_ADDR addr)
 {
index 28efe43..eb4a62e 100644 (file)
@@ -1874,6 +1874,15 @@ s390_frame_chain (struct frame_info *thisframe)
 
 
 
+/* NOTE: cagney/2003-10-31: "return_value" makes
+   "extract_struct_value_address", "extract_return_value", and
+   "use_struct_convention" redundant.  */
+static CORE_ADDR
+s390_cannot_extract_struct_value_address (struct regcache *regcache)
+{
+  return 0;
+}
+
 /* a given return value in `regbuf' with a type `valtype', extract and copy its
    value into `valbuf' */
 static void
@@ -2622,8 +2631,7 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_stab_reg_to_regnum (gdbarch, s390_stab_reg_to_regnum);
   set_gdbarch_dwarf_reg_to_regnum (gdbarch, s390_stab_reg_to_regnum);
   set_gdbarch_dwarf2_reg_to_regnum (gdbarch, s390_stab_reg_to_regnum);
-  set_gdbarch_deprecated_extract_struct_value_address
-    (gdbarch, generic_cannot_extract_struct_value_address);
+  set_gdbarch_extract_struct_value_address (gdbarch, s390_cannot_extract_struct_value_address);
 
   /* Parameters for inferior function calls.  */
   set_gdbarch_deprecated_pc_in_call_dummy (gdbarch, deprecated_pc_in_call_dummy_at_entry_point);