1 --- Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
2 +++ Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
4 tramp = (volatile unsigned short*)&closure->tramp[0];
6 tramp[0] = 0xbb49; /* mov <code>, %r11 */
7 - *(void* volatile*)&tramp[1] = ffi_closure_unix64;
8 + tramp[1] = (unsigned short) ffi_closure_unix64;
9 + tramp[2] = (unsigned short) (((unsigned long)ffi_closure_unix64) >> 16);
10 + tramp[3] = (unsigned short) (((unsigned long)ffi_closure_unix64) >> 32);
11 + tramp[4] = (unsigned short) (((unsigned long)ffi_closure_unix64) >> 48);
12 tramp[5] = 0xba49; /* mov <data>, %r10 */
13 - *(void* volatile*)&tramp[6] = closure;
14 + tramp[6] = (unsigned short) closure;
15 + tramp[7] = (unsigned short) (((unsigned long)closure) >> 16);
16 + tramp[8] = (unsigned short) (((unsigned long)closure) >> 32);
17 + tramp[9] = (unsigned short) (((unsigned long)closure) >> 48);
19 /* Set the carry bit if the function uses any sse registers.
20 This is clc or stc, together with the first byte of the jmp. */
21 --- Modules/posixmodule.c
22 +++ Modules/posixmodule.c
23 @@ -13998,6 +13998,9 @@
27 +#if defined __clang__
28 +__attribute__((no_sanitize("shift-base"))) // MFD_HUGE_16GB in /usr/include/linux/memfd.h
33 --- Objects/listobject.c
34 +++ Objects/listobject.c
39 - dest = np->ob_item + Py_SIZE(a);
40 + dest = Py_SIZE(a) == 0 ? np->ob_item : np->ob_item + Py_SIZE(a);
41 for (i = 0; i < Py_SIZE(b); i++) {