diff options
author | Tim Peters <tim.peters@gmail.com> | 2000-10-05 01:42:25 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2000-10-05 01:42:25 (GMT) |
commit | d57731f74bdaaf6bb5ce190b5ccebadad218ed2b (patch) | |
tree | e4e7344c3395601191e836abd313bbb06565767e | |
parent | c85eb0bd4b3cfaa6a110d0d7d40553f3e02d02af (diff) | |
download | cpython-d57731f74bdaaf6bb5ce190b5ccebadad218ed2b.zip cpython-d57731f74bdaaf6bb5ce190b5ccebadad218ed2b.tar.gz cpython-d57731f74bdaaf6bb5ce190b5ccebadad218ed2b.tar.bz2 |
Move LONG_BIT from intobject.c to pyport.h. #error if it's already been
#define'd to an unreasonable value (several recent gcc systems have
misdefined it, causing bogus overflows in integer multiplication). Nuke
CHAR_BIT entirely.
-rw-r--r-- | Include/pyport.h | 13 | ||||
-rw-r--r-- | Objects/intobject.c | 8 |
2 files changed, 13 insertions, 8 deletions
diff --git a/Include/pyport.h b/Include/pyport.h index 4914886..f35d8e6 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -374,6 +374,19 @@ typedef struct fd_set { #define LONG_MIN (-LONG_MAX-1) #endif +#ifndef LONG_BIT +#define LONG_BIT (8 * SIZEOF_LONG) +#endif + +#if LONG_BIT != 8 * SIZEOF_LONG +/* 04-Oct-2000 LONG_BIT is apparently (mis)defined as 64 on some recent + * 32-bit platforms using gcc. We try to catch that here at compile-time + * rather than waiting for integer multiplication to trigger bogus + * overflows. + */ +#error "LONG_BIT definition appears wrong for platform (bad gcc config?)." +#endif + #ifdef __NeXT__ #ifdef __sparc__ /* diff --git a/Objects/intobject.c b/Objects/intobject.c index 8477a02..b88a05d 100644 --- a/Objects/intobject.c +++ b/Objects/intobject.c @@ -4,14 +4,6 @@ #include "Python.h" #include <ctype.h> -#ifndef CHAR_BIT -#define CHAR_BIT 8 -#endif - -#ifndef LONG_BIT -#define LONG_BIT (CHAR_BIT * sizeof(long)) -#endif - long PyInt_GetMax(void) { |