Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Nov 2010 23:50:11 GMT
From:      Alexander Best <arundel@freebsd.org>
To:        freebsd-standards@FreeBSD.org
Subject:   Re: standards/143358: [libm] nearbyint(3) raises spurious inexact exception
Message-ID:  <201011232350.oANNoBZC073398@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR standards/143358; it has been noted by GNATS.

From: Alexander Best <arundel@freebsd.org>
To: bug-followup@freebsd.org
Cc:  
Subject: Re: standards/143358: [libm] nearbyint(3) raises spurious inexact exception
Date: Tue, 23 Nov 2010 23:42:05 +0000

 this is what bruce evans wrote concerning this issue.
  
 cheers.
 alex
 
 ----- Forwarded message from Bruce Evans <brde@optusnet.com.au> -----
 
 Date: Tue, 16 Nov 2010 06:01:06 +1100 (EST)
 From: Bruce Evans <brde@optusnet.com.au>
 To: Alexander Best <arundel@FreeBSD.org>
 cc: Bruce Evans <brde@optusnet.com.au>, Ulrich Spoerlein <uqs@FreeBSD.org>,
         das@FreeBSD.org
 Subject: Re: svn commit: r215237 - head/lib/msun/src
 
 [Cc trimmed]
 
 On Mon, 15 Nov 2010, Alexander Best wrote:
 
 >if you are interested in solving two more msun mysteries, you might want to
 >have a look at #PR kern/133583 and standards/143358.
 
 I had already debugged #143358.  The mail wasn't sent to gnats.
 
 %%%
 >From bde@optusnet.com.au Sun Jan 31 02:20:33 2010 +1100
 Date: Sun, 31 Jan 2010 02:20:30 +1100 (EST)
 From: Bruce Evans <brde@optusnet.com.au>
 X-X-Sender: bde@delplex.bde.org
 To: gavin@freebsd.org
 cc: freebsd-amd64@freebsd.org, freebsd-standards@freebsd.org, das@freebsd.org
 Subject: Re: standards/143358: nearbyint raises spurious inexact exception
 In-Reply-To: <201001301251.o0UCpSEP077706@freefall.freebsd.org>
 Message-ID: <20100131014341.J78095@delplex.bde.org>
 References: <201001301251.o0UCpSEP077706@freefall.freebsd.org>
 MIME-Version: 1.0
 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
 Status: O
 X-Status: 
 X-Keywords: 
 X-UID: 1287
 
 On Sat, 30 Jan 2010 gavin@freebsd.org wrote:
 
 >Synopsis: nearbyint raises spurious inexact exception
 
 >Note that a comment in the function itself in lib/msun/src/s_nearbyint.c
 >does also suggest that this PR is valid, "We save and restore the
 >floating-point environment to avoid raising an inexact exception."  I've
 >also verified Solaris 10, Linux and FreeBSD 7.2 show the expected behaviour.
 
 This seems to be a bug in gcc-4.2, or perhaps a bug in the inline asms.
 gcc-4.2 still works with -O0, but with -O it removes the entire fesetenv()
 in nearbyint().  The fegetenv() isn't removed though its result is never
 used.  I didn't get anywhere good trying to fix this, but I got to the
 following worse place of interest: after replacing the fesetenv(&env) by
 fesetenv(&xenv) where xenv is an invalidly initialized global variable
 (all 0's), the fegetenv(&env) corrupted the current environment (looks
 a bit like xenv was used to initialize the current environment).
 
 Removing fesetenv() in other contexts would give larger bugs.
 
 Bruce
 %%%
 
 Note that it is the libary that must be compiled with -O0 to avoid this
 bug.
 
 Bruce
 
 ----- End forwarded message -----
 
 -- 
 a13x



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011232350.oANNoBZC073398>