When I am fixing GDB's inf-call in one port, I find tests to _Complex type is quite limited, especially on argument passing, there is none. This patch is to add more tests to _Complex type on argument passing and vararg support. Of course, these changes can be split, and moved to callfuncs.exp and varargs.exp respectively. I don't know to what extent _Complex is supported on all GDB ports, so I put all _Complex related stuff into complex.exp. I run this case on these three systems I have, and some problems are exposed: i686-pc-linux-gnu: two SIGSEGV FAIL: gdb.base/complex.exp: print find_max_double_real(4, dc1, dc2, dc3, dc4) FAIL: gdb.base/complex.exp: print complex_double_on_stackprint armv7l-unknown-linux-gnueabi: four SIGSEGV FAIL: gdb.base/complex.exp: print find_max_float_real(4, fc1, fc2, f3, f4) FAIL: gdb.base/complex.exp: print find_max_double_real(4, dc1, dc2, dc3, dc4) FAIL: gdb.base/complex.exp: print complex_float_on_stackprint FAIL: gdb.base/complex.exp: print complex_double_on_stackprint x86_64-unknown-linux-gnu: FAIL: gdb.base/complex.exp: print find_max_float_real(4, fc1, fc2, f3, f4) FAIL: gdb.base/complex.exp: print find_max_double_real(4, dc1, dc2, dc3, dc4) FAIL: gdb.base/complex.exp: print complex_float_on_stackprint FAIL: gdb.base/complex.exp: print complex_double_on_stackprint This case causes new fails, so shall I kfail it? Comments are welcome. -- Yao (齐尧)