Created attachment 5746 [details] test case Test case is attached. Here are the steps to reproduce it. $ gcc -g complex-ret.c -o complex-ret $ ./gdb complex-ret (gdb) b main Breakpoint 1 at 0x40044c: file /scratch/yao/complex-ret.c, line 9. (gdb) run Breakpoint 1, main () at /scratch/yao/complex-ret.c:9 9 return 0; (gdb) p return_float_complex (fc) During symbol reading, incomplete CFI data; unspecified registers (e.g., rax) at 0x40044c. $1 = 0 + 0 * I // <-- return value is wrong. (gdb) p return_double_complex (dc) $2 = 0 + 0 * I // <-- return value is wrong. (gdb) p return_long_double_complex (ldc) ../../src/gdb/amd64-tdep.c:622: internal-error: amd64_return_value: Assertion `len <= 16' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n)
CVSROOT: /cvs/src Module name: src Changes by: kettenis@sourceware.org 2012-10-23 18:16:55 Modified files: gdb : ChangeLog amd64-tdep.c amd64-tdep.h Log message: PR gdb/12796 PR gdb/12798 PR gdb/12800 * amd64-tdep.h (enum amd64_regnum): Add AMD64_ST1_REGNUM and AMD64_FTAG_REGNUM. * amd64-tdep.c (amd64_classify): Classify complex types. (amd64_return_value): Handle the COMPLEX_X87 class. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.14750&r2=1.14751 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/amd64-tdep.c.diff?cvsroot=src&r1=1.113&r2=1.114 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/amd64-tdep.h.diff?cvsroot=src&r1=1.22&r2=1.23
CVSROOT: /cvs/src Module name: src Changes by: kettenis@sourceware.org 2012-10-23 18:25:26 Modified files: gdb/testsuite : ChangeLog gdb/testsuite/gdb.base: callfuncs.exp Log message: * gdb.base/callfuncs.exp: PR gdb/12796, gdb/12798 and gdb/12800 are now fixed. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/ChangeLog.diff?cvsroot=src&r1=1.3422&r2=1.3423 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.base/callfuncs.exp.diff?cvsroot=src&r1=1.53&r2=1.54
Patch is checked in and KFAIL has been removed from the testsuite.