From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Tue, 29 Jan 2019 21:11:36 +0000 (-0800) Subject: bpo-35847: RISC-V needs CTYPES_PASS_BY_REF_HACK (GH-11694) X-Git-Tag: v3.7.3rc1~116 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=10354cbb5067b4719ba1c2d51d22314a644ed3e5;p=thirdparty%2FPython%2Fcpython.git bpo-35847: RISC-V needs CTYPES_PASS_BY_REF_HACK (GH-11694) This fixes the ctypes.test.test_structures.StructureTestCase test. https://bugs.python.org/issue35847 (cherry picked from commit 742d768656512a469ce9571b1cbd777def7bc5ea) Co-authored-by: Andreas Schwab --- diff --git a/Misc/NEWS.d/next/Library/2019-01-29-09-11-09.bpo-35847.eiSi4t.rst b/Misc/NEWS.d/next/Library/2019-01-29-09-11-09.bpo-35847.eiSi4t.rst new file mode 100644 index 000000000000..e3775f96f36e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2019-01-29-09-11-09.bpo-35847.eiSi4t.rst @@ -0,0 +1 @@ +RISC-V needed the CTYPES_PASS_BY_REF_HACK. Fixes ctypes Structure test_pass_by_value. diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index ec596b4de31d..e971388f69b9 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -1052,7 +1052,7 @@ GetComError(HRESULT errcode, GUID *riid, IUnknown *pIunk) #endif #if (defined(__x86_64__) && (defined(__MINGW64__) || defined(__CYGWIN__))) || \ - defined(__aarch64__) + defined(__aarch64__) || defined(__riscv) #define CTYPES_PASS_BY_REF_HACK #define POW2(x) (((x & ~(x - 1)) == x) ? x : 0) #define IS_PASS_BY_REF(x) (x > 8 || !POW2(x))