Author: Armin Rigo <[email protected]>
Branch:
Changeset: r2343:c0269f40b3d4
Date: 2015-10-16 09:31 +0200
http://bitbucket.org/cffi/cffi/changeset/c0269f40b3d4/
Log: win64 libffi issue
diff --git a/c/_cffi_backend.c b/c/_cffi_backend.c
--- a/c/_cffi_backend.c
+++ b/c/_cffi_backend.c
@@ -3787,8 +3787,15 @@
ffitype = &ffi_type_float;
else if (strcmp(ptypes->name, "double") == 0)
ffitype = &ffi_type_double;
- else if (strcmp(ptypes->name, "long double") == 0)
- ffitype = &ffi_type_longdouble;
+ else if (strcmp(ptypes->name, "long double") == 0) {
+ /* assume that if sizeof(double) == sizeof(long double), then
+ the two types are equivalent for C. libffi bugs on Win64
+ if a function's return type is ffi_type_longdouble... */
+ if (sizeof(double) == sizeof(long double))
+ ffitype = &ffi_type_double;
+ else
+ ffitype = &ffi_type_longdouble;
+ }
else
goto bad_ffi_type;
}
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit