Re: [SOLVED] Assignment problem with doubles: turning into NaN under Leopard
Re: [SOLVED] Assignment problem with doubles: turning into NaN under Leopard
- Subject: Re: [SOLVED] Assignment problem with doubles: turning into NaN under Leopard
- From: Frank Illenberger <email@hidden>
- Date: Fri, 7 Dec 2007 13:22:45 +0100
Thanks for your hints. I just found the root of the problem:
In my code, I put some calculation selectors on a custom stack to be
performed at the end of a run loop iteration. These selectors are then
executed by calling -[NSObject performSelector:withObject:]. One of
the called methods in my code returns a double value whereas
performSelector:withObject: expects an id return value. After 8
repetitions, this mismatch lets the floating point stack overflow so
that following floating point assignments result in getting a NaN.
I managed to locate the root of the problem by using gdb's "info
float" command which dumps the FP stack.
Cheers
Frank
On 06.12.2007, at 19:11, Frank Illenberger wrote:
Hi guys,
I am currently trying to track down a very strange problem that only
occurs on Intel Macs under Leopard. At various locations in my
application, assignments from a method return value to a local
double variable result in the variable containing NaN although the
method result is 0.0.
Example:
- (double)methodValue
{
return 0.0;
}
- (void)test
{
double value = [self methodValue];
if(isnan(value))
NSLog(@"PROBLEM!");
}
The problem does not always occur, but is rather following strange
patterns. It reproducibly occurs inside my application but not in
any test case I constructed. The problem does not occur if I put a
NSLog statement before the assignment. The problem in my case has
definitely nothing to do with nil-messaging or threading.
During today's research I found a similar case in the gcc mailing
list from 1999
http://gcc.gnu.org/ml/gcc-bugs/1999-10/msg00196.html
This case was described as libc corrupting the FP stack so that
following FP operations could fail.
Has anybody encountered a similar problem in applications running on
Intel machines under Leopard?
Cheers
Frank
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden