[Python-checkins] r55949 - python/branches/release25-maint/Include/pyport.h
martin.v.loewis
python-checkins at python.org
Wed Jun 13 05:42:58 CEST 2007
Author: martin.v.loewis
Date: Wed Jun 13 05:42:55 2007
New Revision: 55949
Modified:
python/branches/release25-maint/Include/pyport.h
Log:
Provide PY_LLONG_MAX on all systems having long long.
Modified: python/branches/release25-maint/Include/pyport.h
==============================================================================
--- python/branches/release25-maint/Include/pyport.h (original)
+++ python/branches/release25-maint/Include/pyport.h Wed Jun 13 05:42:55 2007
@@ -62,14 +62,20 @@
#ifndef PY_LONG_LONG
#define PY_LONG_LONG long long
#if defined(LLONG_MAX)
+/* If LLONG_MAX is defined in limits.h, use that. */
#define PY_LLONG_MIN LLONG_MIN
#define PY_LLONG_MAX LLONG_MAX
#define PY_ULLONG_MAX ULLONG_MAX
-#elif defined(__s390__)
-/* Apparently, S390 Linux has long long, but no LLONG_MAX */
-#define PY_LLONG_MAX 9223372036854775807LL
+#elif defined(__LONG_LONG_MAX__)
+/* Otherwise, if GCC has a builtin define, use that. */
+#define PY_LLONG_MAX __LONG_LONG_MAX__
+#define PY_LLONG_MIN (-PY_LLONG_MAX-1)
+#define PY_ULLONG_MAX (__LONG_LONG_MAX__*2ULL + 1ULL)
+#else
+/* Otherwise, rely on two's complement. */
+#define PY_ULLONG_MAX (~0ULL)
+#define PY_LLONG_MAX ((long long)(PY_ULLONG_MAX>>1))
#define PY_LLONG_MIN (-PY_LLONG_MAX-1)
-#define PY_ULLONG_MAX 18446744073709551615ULL
#endif /* LLONG_MAX */
#endif
#endif /* HAVE_LONG_LONG */
More information about the Python-checkins
mailing list