diff options
Diffstat (limited to 'gdb/i386-tdep.c')
-rw-r--r-- | gdb/i386-tdep.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index ddb20aa..2768dbc 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)) { |