diff --git a/src/x86/ffi.c b/src/x86/ffi.c index a02a8a19..79407ae2 100644 --- a/src/x86/ffi.c +++ b/src/x86/ffi.c @@ -309,7 +309,7 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif) { if (((*ptr)->alignment - 1) & cif->bytes) cif->bytes = ALIGN(cif->bytes, (*ptr)->alignment); - cif->bytes += ALIGN((*ptr)->size, FFI_SIZEOF_ARG); + cif->bytes += (unsigned)ALIGN((*ptr)->size, FFI_SIZEOF_ARG); } #ifdef X86_WIN64 @@ -318,7 +318,9 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif) #endif #ifndef X86_WIN32 +#ifndef X86_WIN64 if (cif->abi != FFI_STDCALL && cif->abi != FFI_THISCALL && cif->abi != FFI_FASTCALL) +#endif cif->bytes = (cif->bytes + 15) & ~0xF; #endif