Stuart Caunt
2007-02-15 14:09:23 UTC
Hi,
I've recently upgraded my linux system and have noticed that values passed
as CORBA::Double in our CORBA application are not passed correctly - the
values end up being very close to zero, eg 1.213342e-41 for all values
(even if they were originally 1.2, 3.4, 10.0, etc).
We've traced the root of the problem to the optimisation flag. Originally
it was -O3 but even at -O2 the problem remains. -O1 removes the problem. I
understand that -O3 can have certain effects on the reliability of
floating point calculations but I'm more surprised at the -O2 optimisation
problem.
I'm running on Debian Etch with OmniORB 4.0.6 and g++ 4.1.2. Has anyone
else had similar problems?
Many thanks,
Stuart
I've recently upgraded my linux system and have noticed that values passed
as CORBA::Double in our CORBA application are not passed correctly - the
values end up being very close to zero, eg 1.213342e-41 for all values
(even if they were originally 1.2, 3.4, 10.0, etc).
We've traced the root of the problem to the optimisation flag. Originally
it was -O3 but even at -O2 the problem remains. -O1 removes the problem. I
understand that -O3 can have certain effects on the reliability of
floating point calculations but I'm more surprised at the -O2 optimisation
problem.
I'm running on Debian Etch with OmniORB 4.0.6 and g++ 4.1.2. Has anyone
else had similar problems?
Many thanks,
Stuart