mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
A fix for Bug#9443 "mysql_client_test fails on linux and some solaris
platforms": yet another issue with floating pointer comparisons. The fix uses the workaround with volatiles. sql/item_cmpfunc.cc: A fix for the failing mysql_client_test on some Intel platforms when compiled with optimization. We don't use -ffloat-store compileation as it may slow all floating point operations.
This commit is contained in:
parent
30c8512954
commit
f485db429a
1 changed files with 8 additions and 2 deletions
|
@ -393,10 +393,16 @@ int Arg_comparator::compare_e_binary_string()
|
|||
|
||||
int Arg_comparator::compare_real()
|
||||
{
|
||||
double val1= (*a)->val();
|
||||
/*
|
||||
Fix yet another manifestation of Bug#2338. 'Volatile' will instruct
|
||||
gcc to flush double values out of 80-bit Intel FPU registers before
|
||||
performing the comparison.
|
||||
*/
|
||||
volatile double val1, val2;
|
||||
val1= (*a)->val();
|
||||
if (!(*a)->null_value)
|
||||
{
|
||||
double val2= (*b)->val();
|
||||
val2= (*b)->val();
|
||||
if (!(*b)->null_value)
|
||||
{
|
||||
owner->null_value= 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue