diff options
author | Tom de Vries <tdevries@suse.de> | 2022-09-16 16:40:56 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2022-09-16 16:40:56 +0200 |
commit | ff84aaf3e338702f982274ffb79e93562d05070c (patch) | |
tree | 327a5e0db49733193928f6b395fde12dc0c25c70 /gdb/f-lang.c | |
parent | 77e6e213e0c8e77c53d123244ac75d6a825bda86 (diff) | |
download | binutils-ff84aaf3e338702f982274ffb79e93562d05070c.zip binutils-ff84aaf3e338702f982274ffb79e93562d05070c.tar.gz binutils-ff84aaf3e338702f982274ffb79e93562d05070c.tar.bz2 |
[gdb/tdep] Fix PowerPC IEEE 128-bit format arg passing
On a powerpc system with gcc 12 built to default to 128-bit IEEE long double,
I run into:
...
(gdb) print find_max_long_double_real(4, ldc1, ldc2, ldc3, ldc4)^M
$8 = 0 + 0i^M
(gdb) FAIL: gdb.base/varargs.exp: print \
find_max_long_double_real(4, ldc1, ldc2, ldc3, ldc4)
...
This is due to incorrect handling of the argument in ppc64_sysv_abi_push_param.
Fix this and similar cases, and expand the test-case to test handling of
homogeneous aggregates.
Tested on ppc64le-linux, power 10.
Co-Authored-By: Ulrich Weigand <uweigand@de.ibm.com>
Tested-by: Carl Love <cel@us.ibm.com>
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29543
Diffstat (limited to 'gdb/f-lang.c')
0 files changed, 0 insertions, 0 deletions