Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH 0/2] AArch64 AAPCS: Improve argument passing
@ 2019-01-16 15:57 Alan Hayward
  2019-01-16 15:57 ` [PATCH 2/2] AArch64 AAPCS: Ignore static members Alan Hayward
  2019-01-16 15:57 ` [PATCH 1/2] AArch64 AAPCS: Empty structs have non zero size in C++ Alan Hayward
  0 siblings, 2 replies; 11+ messages in thread
From: Alan Hayward @ 2019-01-16 15:57 UTC (permalink / raw)
  To: gdb-patches; +Cc: nd, Alan Hayward

This series improves the AAPCS argument passing on AArch64 (where small
structures are passed via float registers instead of on the stack).

The first patch ensures empty structures in C++ are dealt with correctly.
The second deals with static struct members.

It replaces the patch
"AArch64: Prevent infinite recursion when checking AAPCS types",
as the test failure is covered by the above. However that patch may still
be required in the future if I can craft a valid test case for it.

This patch adds a new test and expands an exisiting test. When run on
x86_64, many of the new test cases fail with:
amd64-tdep.c:958: internal-error: CORE_ADDR amd64_push_arguments(regcache*,
int, value**, CORE_ADDR, function_call_return_method): Assertion
`!"Unexpected register class."' failed
I had a look, but I don't know enough about the x86 argument passing.

Alan.


Alan Hayward (2):
  AArch64 AAPCS: Empty structs have non zero size in C++
  AArch64 AAPCS: Ignore static members

 gdb/aarch64-tdep.c                            |  16 ++
 .../gdb.base/infcall-nested-structs.exp       |  42 +++-
 .../gdb.cp/infcall-nested-static-structs.cc   | 222 ++++++++++++++++++
 .../gdb.cp/infcall-nested-static-structs.exp  | 173 ++++++++++++++
 4 files changed, 441 insertions(+), 12 deletions(-)
 create mode 100644 gdb/testsuite/gdb.cp/infcall-nested-static-structs.cc
 create mode 100644 gdb/testsuite/gdb.cp/infcall-nested-static-structs.exp

-- 
2.17.2 (Apple Git-113)


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2019-10-14 15:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-16 15:57 [PATCH 0/2] AArch64 AAPCS: Improve argument passing Alan Hayward
2019-01-16 15:57 ` [PATCH 2/2] AArch64 AAPCS: Ignore static members Alan Hayward
2019-01-17 17:22   ` Pedro Alves
2019-01-16 15:57 ` [PATCH 1/2] AArch64 AAPCS: Empty structs have non zero size in C++ Alan Hayward
2019-01-17 17:08   ` Pedro Alves
2019-01-18 10:34     ` Alan Hayward
2019-01-21 15:52       ` Alan Hayward
2019-10-10 23:49         ` Tom de Vries
2019-10-11 12:14           ` [gdb/tdep] Fix 'Unexpected register class' assert in amd64_push_arguments Tom de Vries
2019-10-14 13:10             ` Alan Hayward
2019-10-14 15:23               ` Tom de Vries

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox