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.
This commit is contained in:
Tim Peters 2000-10-05 01:42:25 +00:00
parent c85eb0bd4b
commit d57731f74b
2 changed files with 13 additions and 8 deletions

View File

@ -374,6 +374,19 @@ typedef struct fd_set {
#define LONG_MIN (-LONG_MAX-1) #define LONG_MIN (-LONG_MAX-1)
#endif #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 __NeXT__
#ifdef __sparc__ #ifdef __sparc__
/* /*

View File

@ -4,14 +4,6 @@
#include "Python.h" #include "Python.h"
#include <ctype.h> #include <ctype.h>
#ifndef CHAR_BIT
#define CHAR_BIT 8
#endif
#ifndef LONG_BIT
#define LONG_BIT (CHAR_BIT * sizeof(long))
#endif
long long
PyInt_GetMax(void) PyInt_GetMax(void)
{ {