]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.12] gh-110190: Fix ctypes structs with array on Arm (#112604) (#112767)
authorDiego Russo <diego.russo@arm.com>
Wed, 6 Dec 2023 15:57:34 +0000 (15:57 +0000)
committerGitHub <noreply@github.com>
Wed, 6 Dec 2023 15:57:34 +0000 (16:57 +0100)
commitf941ecfffa9f919b9f624508cd0814e94f56db10
treea9c752167b001b5548417c0e30762f624a5aa0b6
parentf189bd3e839f95396ca4db3295883976c510ef0d
[3.12] gh-110190: Fix ctypes structs with array on Arm (#112604) (#112767)

Set MAX_STRUCT_SIZE to 32 in stgdict.c when on Arm platforms.
This because on Arm platforms structs with at most 4 elements of any
floating point type values can be passed through registers. If the type
is double the maximum size of the struct is 32 bytes.
On x86-64 Linux, it's maximum 16 bytes hence we need to differentiate.

(cherry picked from commit bc68f4a4abcfbea60bb1db1ccadb07613561931c)
Lib/test/test_ctypes/test_structures.py
Misc/NEWS.d/next/Library/2023-12-01-18-05-09.gh-issue-110190.5bf-c9.rst [new file with mode: 0644]
Modules/_ctypes/_ctypes_test.c
Modules/_ctypes/stgdict.c