-#if BITS_PER_EMACS_INT > 32
-#define PURESIZE_RATIO 10/6 /* Don't surround with `()'. */
+#if EMACS_INT_MAX >> 31 != 0
+#if PTRDIFF_MAX >> 31 != 0
+#define PURESIZE_RATIO 10 / 6 /* Don't surround with `()'. */
+#else
+#define PURESIZE_RATIO 8 / 6 /* Don't surround with `()'. */
+#endif
/* ENABLE_CHECKING somehow increases the purespace used, probably because
it tends to cause some macro arguments to be evaluated twice. This is
a bug, but it's difficult to track it down. */
/* ENABLE_CHECKING somehow increases the purespace used, probably because
it tends to cause some macro arguments to be evaluated twice. This is
a bug, but it's difficult to track it down. */