From 2445fd7b3ae9a30a75e4ab265b29ec97da6ad44e Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Wed, 24 Oct 2012 14:56:01 +0000 Subject: [PATCH] PR gdb/12783 * i386-tdep.c (i386_return_value): Handle complex double and long double. --- gdb/ChangeLog | 6 ++++++ gdb/i386-tdep.c | 3 +++ 2 files changed, 9 insertions(+) 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)) { -- 2.30.2