aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/arch-utils.c15
-rw-r--r--gdb/s390-tdep.c12
3 files changed, 20 insertions, 17 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 5ee83be..b5b4a16 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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.
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index 38ad486..21c5682 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -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)
{
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 28efe43..eb4a62e 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -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);