Commit 3e245202 authored by konstantin@mysql.com's avatar konstantin@mysql.com

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.
parent 7647ac83
......@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment