smaller type conversion bugs on 32 bit
|Percona Server||Status tracked in 5.6|
There are couple of bugs about conversion of ib_uint64_t types (like LSNs) to size_t-big types. On 32 bit, for big enough values it would mean truncating valuable bits off the value. I used Visual Studio compiler to find the bugs, gcc by default is lax on type conversions, even ones that might result in loss of information.
Also, I found that ut_max inline function was sometimes incorrectly used on 64 bit values - it is defined for ulint values, which is != ib_uint64_t on 32 bit
Finally, there is a warning about truncation of ib_uint64_t to double, in I_S handling (because Field::