Hi

I've just tried to build the guppy version from SVN and run the test suite with
Python 2.7 on an amd64 machine. The test suite already fails test1 in
guppy/sets/test.py. I've also tried on a 32 bit machine and and their it didn't
fail.

The reason is simple: _PyLong_Frexp takes a Py_ssize_t* as second argument but a
int* is passed. Therefor _PyLong_Frexp messes with other variables on the stack
since Py_ssize_t is larger than int on amd64.

Attached is a patch to fix this issues.

Kind regards,
-- 
Sebastian Ramacher
Index: src/sets/bitset.c
===================================================================
--- src/sets/bitset.c	(revision 90)
+++ src/sets/bitset.c	(working copy)
@@ -2011,7 +2011,11 @@
 {
     NyBits *buf;
     int r = -1;
+#if PY_VERSION_HEX >= 0x02070000
+    Py_ssize_t e;
+#else
     int e;
+#endif
     long num_poses, num_bytes;
     double num_bits, x;
     int cpl = 0;

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to