mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-29 06:50:32 +00:00
2003-10-10 Elena Zannoni <ezannoni@redhat.com>
* sh-tdep.c (sh_use_struct_convention): Clarify one case in comment.
This commit is contained in:
parent
3f997a978d
commit
7fe958be01
@ -1,3 +1,8 @@
|
||||
2003-10-10 Elena Zannoni <ezannoni@redhat.com>
|
||||
|
||||
* sh-tdep.c (sh_use_struct_convention): Clarify one case in
|
||||
comment.
|
||||
|
||||
2003-10-10 Corinna Vinschen <vinschen@redhat.com>
|
||||
|
||||
* sh-tdep.c (sh_use_struct_convention): Clean up to have a
|
||||
|
@ -568,7 +568,7 @@ sh_skip_prologue (CORE_ADDR start_pc)
|
||||
All other aggregate types are returned by address. The caller
|
||||
function passes the address of an area large enough to hold the
|
||||
aggregate value in R2. The called function stores the result in
|
||||
this location."
|
||||
this location.
|
||||
|
||||
To reiterate, structs smaller than 8 bytes could also be returned
|
||||
in memory, if they don't pass the "same size and alignment as an
|
||||
@ -582,6 +582,16 @@ sh_skip_prologue (CORE_ADDR start_pc)
|
||||
the return value from foo() will be in memory, not
|
||||
in R0, because there is no 3-byte integer type.
|
||||
|
||||
Similarly, in
|
||||
|
||||
struct s { char c[2]; } wibble;
|
||||
struct s foo(void) { return wibble; }
|
||||
|
||||
because a struct containing two chars has alignment 1, that matches
|
||||
type char, but size 2, that matches type short. There's no integer
|
||||
type that has alignment 1 and size 2, so the struct is returned in
|
||||
memory.
|
||||
|
||||
*/
|
||||
|
||||
static int
|
||||
|
Loading…
Reference in New Issue
Block a user