1.5.12: FPU affected by gethostname call

Dave Korn dave.korn@artimi.com
Thu Feb 24 00:21:00 GMT 2005


----Original Message----
>From: cygwin-owner On Behalf Of Ralf B. Schulz 
>Sent: 23 February 2005 16:42

> Long doubles are 12 byte = 96 bit = sizeof(long double). No matter whether
> stored in memory or in registers, they should have that length, no?

  Oh, that does turn out to be a recent change to gcc.  Hmm.

  Then again, I can't reproduce the problem here.  Maybe that's the AMD vs
Intel difference you were wondering about.  I've got a P4; same OS version
as you though, XpSp1.  It makes no difference if I have the call to
gethostname or not, and it makes no difference if I compile with or without
optimisation.

> In the original code, tolerance is set to 1e-19 instead of 5e-16 if long
> doubles are available. In this case, the code calling gethostname() goes
> into an infinite loop.

  That code is seriously buggy, isn't it?

const long double tolerance = 5e-16;
long   double p1, p2, p3;

   do
   {
       [details omitted]
   }
   while (abs(p1/pp) > tolerance);
          ^^^^^^^^^^^^^^^^^^^^^^

<koff>  I really think that ought to have been *f*abs, should it not?  

  Heh.  Why do people always think they can just ignore compiler warnings?

    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list