Date: Tue, 16 Sep 2003 06:10:20 -0700 (PDT) From: Stefan Farfeleder <stefan@fafoe.narf.at> To: freebsd-standards@FreeBSD.org Subject: Re: standards/56906: Several math(3) functions fail to set errno on a domain error Message-ID: <200309161310.h8GDAKBc054352@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR standards/56906; it has been noted by GNATS. From: Stefan Farfeleder <stefan@fafoe.narf.at> To: Bruce Evans <bde@zeta.org.au> Cc: bug-followup@freebsd.org, freebsd-standards@freebsd.org Subject: Re: standards/56906: Several math(3) functions fail to set errno on a domain error Date: Tue, 16 Sep 2003 15:08:07 +0200 --tThc/1wpZn/ma/RB Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue, Sep 16, 2003 at 11:42:44AM +1000, Bruce Evans wrote: > On Tue, 16 Sep 2003, Stefan Farfeleder wrote: > > > >Synopsis: Several math(3) functions fail to set errno on a domain error > > This is intentional. > > > >Description: > > ISO C90 says that errno must be set to EDOM if a domain error occurs. > > As you probably know, C99 doesn't require this. FreeBSD, or at least I, > decided not to support C90's relatively feeble and broken specification > of floating point and wait for C99 to get it right. The wait is long > over and the nonstandardness is now a little different. Hm, having a conforming C90 environment would be nice despite C99's existence as older compliant applications may depend on the former behaviour and don't become magically C99 conformant. Is there a chance to have a separated C90 compliant libm? Anyway, here's a patch to give C99 application at least the possibility to notice that errno doesn't get set for these functions. Because we don't have <fenv.h> to access the floating point status flags, I'm setting math_errhandling to 0. Stefan --tThc/1wpZn/ma/RB Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="math_errhandling.diff" Index: src/lib/msun/src/math.h =================================================================== RCS file: /usr/home/ncvs/src/lib/msun/src/math.h,v retrieving revision 1.26 diff -u -r1.26 math.h --- src/lib/msun/src/math.h 22 May 2003 17:07:57 -0000 1.26 +++ src/lib/msun/src/math.h 16 Sep 2003 12:31:42 -0000 @@ -339,4 +339,10 @@ #endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */ __END_DECLS +#if __ISO_C_VISIBLE >= 1999 +#define MATH_ERRNO 1 +#define MATH_ERREXCEPT 2 +#define math_errhandling 0 +#endif + #endif /* !_MATH_H_ */ --tThc/1wpZn/ma/RB--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200309161310.h8GDAKBc054352>