--- Python-3.7.1/Modules/_ctypes/callproc.c.orig 2018-10-21 20:21:21.305822500 +0200 +++ Python-3.7.1/Modules/_ctypes/callproc.c 2018-10-21 20:51:03.252890200 +0200 @@ -701,6 +701,21 @@ } } +#ifdef __MINGW32__ +/* +Per: https://msdn.microsoft.com/en-us/library/7572ztz4.aspx +To be returned by value in RAX, user-defined types must have a length +of 1, 2, 4, 8, 16, 32, or 64 bits +*/ +static int can_return_struct_as_int(size_t s) +{ + return s == 1 || s == 2 || s == 4; +} +static int can_return_struct_as_sint64(size_t s) +{ + return s == 8; +} +#endif ffi_type *_ctypes_get_ffi_type(PyObject *obj) {