Problem with ARM port and pow() function

Nick Clifton nickc@redhat.com
Tue Oct 16 13:37:00 GMT 2007


Hi Fausto,

>> The problem is like that: when in pow(x,y) the "y" factor is an integer, 
>> > there is no problem. But when the "y" factor is a double or float (for 
>> > example "2.1") there is a data exception and the program hangs. Crash.
> 
> I've done some tests, and I can't understand what's wrong.
> It seems that the problem is in the e_pow.c file, the line:
> 
> p_l = (y-y1)*t1+y*t2;
> 
> It seems that t1 contains a too big variable, causing overflow.

Please could you supply a full test case that reproduces the problem ?  Please 
include the command line(s) you use to compile the test case, and, this is very 
important, please tell us exactly which toolchain you are using to compile the 
test case (including how it was configured) and how you are running the test 
case.  (Are you running it on hardware or under a simulator ?)

Cheers
   Nick



More information about the Newlib mailing list