mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-04 08:08:01 +00:00
* i386-tdep.c (i386_extract_return_value): If the type of the
return value is TYPE_STRUCT and the number of fields is one, call ourselves with TYPE set tp the type of the first field. (i386_store_return_value): Likewise. This fixes a problem with returning structs consisting of a single `float' or `double' on *BSD.
This commit is contained in:
parent
61b96bb428
commit
1e8d0a7b55
@ -1,3 +1,12 @@
|
||||
2001-03-31 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* i386-tdep.c (i386_extract_return_value): If the type of the
|
||||
return value is TYPE_STRUCT and the number of fields is one, call
|
||||
ourselves with TYPE set tp the type of the first field.
|
||||
(i386_store_return_value): Likewise.
|
||||
This fixes a problem with returning structs consisting of a single
|
||||
`float' or `double' on *BSD.
|
||||
|
||||
2001-03-30 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* lin-lwp.c (lin_lwp_resume): Don't mark LWP as not stopped until
|
||||
|
@ -733,7 +733,12 @@ i386_extract_return_value (struct type *type, char *regbuf, char *valbuf)
|
||||
{
|
||||
int len = TYPE_LENGTH (type);
|
||||
|
||||
if (TYPE_CODE_FLT == TYPE_CODE (type))
|
||||
if (TYPE_CODE (type) == TYPE_CODE_STRUCT
|
||||
&& TYPE_NFIELDS (type) == 1)
|
||||
return i386_extract_return_value (TYPE_FIELD_TYPE (type, 0),
|
||||
regbuf, valbuf);
|
||||
|
||||
if (TYPE_CODE (type) == TYPE_CODE_FLT)
|
||||
{
|
||||
if (NUM_FREGS == 0)
|
||||
{
|
||||
@ -791,7 +796,11 @@ i386_store_return_value (struct type *type, char *valbuf)
|
||||
{
|
||||
int len = TYPE_LENGTH (type);
|
||||
|
||||
if (TYPE_CODE_FLT == TYPE_CODE (type))
|
||||
if (TYPE_CODE (type) == TYPE_CODE_STRUCT
|
||||
&& TYPE_NFIELDS (type) == 1)
|
||||
return i386_store_return_value (TYPE_FIELD_TYPE (type, 0), valbuf);
|
||||
|
||||
if (TYPE_CODE (type) == TYPE_CODE_FLT)
|
||||
{
|
||||
if (NUM_FREGS == 0)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user