PR tdep/12797
	* arm-tdep.c (arm_return_value): Handle complex types.

gdb/testsuite/
	PR tdep/12797
	* gdb.base/callfuncs.exp: Remove KFAIL.
This commit is contained in:
Ulrich Weigand 2011-12-21 21:13:15 +00:00
parent 9cb80f72d8
commit 7052e42c35
4 changed files with 16 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2011-12-21 Ulrich Weigand <ulrich.weigand@linaro.org>
PR tdep/12797
* arm-tdep.c (arm_return_value): Handle complex types.
2011-12-21 Andreas Schwab <schwab@linux-m68k.org>
* ppc-linux-nat.c (create_watchpoint_request): Only use ranged

View File

@ -9061,6 +9061,12 @@ arm_return_value (struct gdbarch *gdbarch, struct type *func_type,
return RETURN_VALUE_STRUCT_CONVENTION;
}
/* AAPCS returns complex types longer than a register in memory. */
if (tdep->arm_abi != ARM_ABI_APCS
&& TYPE_CODE (valtype) == TYPE_CODE_COMPLEX
&& TYPE_LENGTH (valtype) > INT_REGISTER_SIZE)
return RETURN_VALUE_STRUCT_CONVENTION;
if (writebuf)
arm_store_return_value (valtype, regcache, writebuf);

View File

@ -1,3 +1,8 @@
2011-12-21 Ulrich Weigand <ulrich.weigand@linaro.org>
PR tdep/12797
* gdb.base/callfuncs.exp: Remove KFAIL.
2011-12-21 Joel Brobecker <brobecker@adacore.com>
* gdb.ada/task_bp: New testcase.

View File

@ -248,19 +248,16 @@ proc do_function_calls {} {
if [support_complex_tests] {
setup_kfail_for_target gdb/12796 "x86_64-*-*"
setup_kfail_for_target gdb/12797 "arm*-*-*"
gdb_test "p t_structs_fc(struct_val1)" ".*= 3 \\+ 3 \\* I" \
"call inferior func with struct - returns float _Complex"
setup_kfail_for_target gdb/12783 "i?86-*-*"
setup_kfail_for_target gdb/12796 "x86_64-*-*"
setup_kfail_for_target gdb/12797 "arm*-*-*"
gdb_test "p t_structs_dc(struct_val1)" ".*= 4 \\+ 4 \\* I" \
"call inferior func with struct - returns double _Complex"
setup_kfail_for_target gdb/12783 "i?86-*-*"
setup_kfail_for_target gdb/12796 "x86_64-*-*"
setup_kfail_for_target gdb/12797 "arm*-*-*"
gdb_test "p t_structs_ldc(struct_val1)" "= 5 \\+ 5 \\* I" \
"call inferior func with struct - returns long double _Complex"
}