From: Mark Kettenis Date: Wed, 24 Oct 2012 14:56:01 +0000 (+0000) Subject: PR gdb/12783 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2445fd7b3ae9a30a75e4ab265b29ec97da6ad44e;p=binutils-gdb.git PR gdb/12783 * i386-tdep.c (i386_return_value): Handle complex double and long double. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0a5e79ce5ba..b5b0cbccf90 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2012-10-24 Mark Kettenis + + PR gdb/12783 + * i386-tdep.c (i386_return_value): Handle complex double and long + double. + 2012-10-24 Joel Brobecker * windows-nat.c (windows_create_inferior) [!__CYGWIN__]: diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index ddb20aa444b..2768dbc9630 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -2630,6 +2630,9 @@ i386_return_value (struct gdbarch *gdbarch, struct value *function, || code == TYPE_CODE_UNION || code == TYPE_CODE_ARRAY) && !i386_reg_struct_return_p (gdbarch, type)) + /* Complex double and long double uses the struct return covention. */ + || (code == TYPE_CODE_COMPLEX && TYPE_LENGTH (type) == 16) + || (code == TYPE_CODE_COMPLEX && TYPE_LENGTH (type) == 24) /* 128-bit decimal float uses the struct return convention. */ || (code == TYPE_CODE_DECFLOAT && TYPE_LENGTH (type) == 16)) {