Fix for bug #29079: Semantics of "bigint" depend on platform specifics (size, signedness of char ?)
Problem: long and long long types mess in a comparison may lead to wrong results on some platforms. Fix: prefer [unsigned] long long as [u]longlong as it's used unconditionally in many places. include/my_global.h: Fix for bug #29079: Semantics of "bigint" depend on platform specifics (size, signedness of char ?) - use [unsigned] long long as [u]longlong if sizeof(long long) == 8, to avoid type mess, as we use [unsigned] long long unconditionally in many places, for example in constants with [U]LL suffix.
This commit is contained in:
parent
9aac6fd7bd
commit
ae587cfb0c
@ -828,7 +828,12 @@ error "Neither int or long is of 4 bytes width"
|
||||
typedef unsigned long ulong; /* Short for unsigned long */
|
||||
#endif
|
||||
#ifndef longlong_defined
|
||||
#if defined(HAVE_LONG_LONG) && SIZEOF_LONG != 8
|
||||
/*
|
||||
Using [unsigned] long long is preferable as [u]longlong because we use
|
||||
[unsigned] long long unconditionally in many places,
|
||||
for example in constants with [U]LL suffix.
|
||||
*/
|
||||
#if defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG == 8
|
||||
typedef unsigned long long int ulonglong; /* ulong or unsigned long long */
|
||||
typedef long long int longlong;
|
||||
#else
|
||||
|
Loading…
x
Reference in New Issue
Block a user