From: Tom H. <th...@cy...> - 2004-03-26 17:15:16
|
In message <1080318522.20340.26.camel@antigua> Chris AtLee <ch...@at...> wrote: > The confusing thing is that valgrind reports the error on line 26, which > is clearly using an intialized value. I believe that the problem is > caused on line 23, where myInstance->myVal is assigned. The assembly > code looks good to me, so I'm not sure what valgrind thinks is going > wrong. The bug is exactly where valgrind says it is, and it has nothing whatsoever to do with the bitfield. It is in fact a bug in valgrind when a floating point comparison is done using fucomip and the other related instructions which store the results in eflags. Basically valgrind is failing to set the validity of the relevant bits in eflags for those instructions which means it then considers the result of the comparison to be undefined. When compiling for i386 gcc is choosing to use fucompp instead, which stores it's result in the floating point flags and that works fine. Can you raise a bug for this please... Tom -- Tom Hughes (th...@cy...) Software Engineer, Cyberscience Corporation http://www.cyberscience.com/ |