diff options
author | Jim Blandy <jimb@codesourcery.com> | 2001-11-29 22:24:42 +0000 |
---|---|---|
committer | Jim Blandy <jimb@codesourcery.com> | 2001-11-29 22:24:42 +0000 |
commit | c8f9d51ce2e3eb695d8539d5615d0831ff906b3b (patch) | |
tree | 341cf684c7d00a33aa95ff2226760e85cb8a5af1 /gdb/arch-utils.c | |
parent | af667503bbcea170ccc0c5d98894ea9edb074567 (diff) | |
download | gdb-c8f9d51ce2e3eb695d8539d5615d0831ff906b3b.zip gdb-c8f9d51ce2e3eb695d8539d5615d0831ff906b3b.tar.gz gdb-c8f9d51ce2e3eb695d8539d5615d0831ff906b3b.tar.bz2 |
Tighten up GDB's support for returning structs by value.
* s390-tdep.c (s390_use_struct_convention): New function.
(s390_gdbarch_init): Register it as the S/390's
USE_STRUCT_CONVENTION method. Register
generic_cannot_extract_struct_value_address as our
EXTRACT_STRUCT_VALUE_ADDRESS method.
* arch-utils.c (generic_cannot_extract_struct_value_address): New
function.
* arch-utils.h: Add corresponding prototype.
Diffstat (limited to 'gdb/arch-utils.c')
-rw-r--r-- | gdb/arch-utils.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c index 0dab00c..2b23951 100644 --- a/gdb/arch-utils.c +++ b/gdb/arch-utils.c @@ -240,6 +240,21 @@ generic_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; +} + int default_register_sim_regno (int num) { |