Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Apr 2002 00:20:04 -0800 (PST)
From:      Loren James Rittle <rittle@latour.rsch.comm.mot.com>
To:        freebsd-alpha@FreeBSD.org
Subject:   Re: alpha/36327: trap within cvt() while attempting to printf() an FP number
Message-ID:  <200204020820.g328K4621542@freefall.freebsd.org>

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

From: Loren James Rittle <rittle@latour.rsch.comm.mot.com>
To: gallatin@cs.duke.edu
Cc: ljrittle@freebsd.org, freebsd-gnats-submit@freebsd.org
Subject: Re: alpha/36327: trap within cvt() while attempting to printf() an FP number
Date: Tue, 2 Apr 2002 02:13:21 -0600 (CST)

 > I beleive this only works for floating point operations which have
 > software completion enabled.  Eg, -mieee.
 
 OK.
 
 > Have you tried adding  -mieee to CFLAGS?
 
 Yes, I see that I failed to report it, but I did try the test case
 with -mieee and without it.  As far as I can see, the mechanism
 documented to disable underflow traps is not working on
 alpha*-*-freebsd4.2 or alpha*-*-freebsd5.0 OR there is a bug in the
 handling of some FP numbers in cvt() which causes a non-maskable FP
 trap.  Sorry I should have posted a complete example.  Here is one
 that fails:
 
 ; cat tq.c 
 #include <float.h>
 #include <stdio.h>
 #include <ieeefp.h>
 
 main() {
   double d = DBL_MIN;
 
   fpsetmask(0);
   
   printf (" = %.17g;\n", d);
   printf (" = %.17g;\n", d/10);
   printf (" = %.17g;\n", (DBL_MIN/10)*10);
   printf (" = %.17g;\n", (DBL_MIN/10));
 }
 
 ; /usr/bin/gcc -mieee tq.c
 ; a.out
  = 2.2250738585072014e-308;
 floating point exception--core dumped
 
 Exact same output when compiled without -mieee.
 
 In any event, it is not the code for d/10 that traps.  It is code
 inside cvt() which is called from vfprintf().  Two issues: Should a
 library routine ever internally trap; no matter what the mask setting?
 Shouldn't there be some way to disable the trap?
 
 Regards,
 Loren

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




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