This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: libgcj/4616: Floating Point Math class problem on Tru64 Alpha v 5.1
- From: Craig Rodrigues <rodrigc at mediaone dot net>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 5 Jan 2002 20:56:00 -0000
- Subject: Re: libgcj/4616: Floating Point Math class problem on Tru64 Alpha v 5.1
- Reply-to: Craig Rodrigues <rodrigc at mediaone dot net>
The following reply was made to PR libgcj/4616; it has been noted by GNATS.
From: Craig Rodrigues <rodrigc@mediaone.net>
To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, ake@purdue.edu,
java@gcc.gnu.org, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org,
java-prs@gcc.gnu.org
Cc:
Subject: Re: libgcj/4616: Floating Point Math class problem on Tru64 Alpha v 5.1
Date: Sat, 05 Jan 2002 15:54:36 -0500
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4616
The following was submitted by ake@purdue.edu, but ended up in the wrong
PR.
Do not change the format of the subject line when CC:'ing messages to
GNATS.
===============================================================
Hello, These are the results of the C program:
Argument arg is 3.780800e+02
Argument y is 1.577821e+164
Argument x is 1.797693e+308
Argument result is 1.755384e-144
BUT if x=y=overflow, this is the result:
Argument arg is 9.000000e+02
Argument y is 1.797693e+308
Argument x is 1.797693e+308
Floating point exception (core dumped)
More testing on Alpha and Java showed this:
If arg >=261 the program is STALLED. No floating core dump, and it
doesn't execute the print of "x":
Argument arg is 261.0 Argument y is 2.2431575451828986E113
Regards
On Fri, 19 Oct 2001, Andrew Haley wrote:
> ake@purdue.edu writes:
> > >Category: libgcj
> > >Synopsis: Floating Point Math class problem on Tru64 Alpha
v 5.1
> > >Confidential: no
> > >Severity: serious
> > >Priority: medium
> > >Class: sw-bug
> > >Submitter-Id: net
> > >Originator: Antonio Ake
> > >Release: 3.0.2 prerelease
> > >Environment:
> > TRu64 Unix v 5.1
> > >Description:
> > his is the part of the code executing:
> > public static double d1f (double arg) {
> > double y,x;
> >
> > System.out.print("Argument arg is " + arg + " ");
> > y= Math.exp(arg);
> > System.out.print("Argument y is " + y + " ");
> > x=Math.pow((y+1.0),2.0);
> > System.out.print("Argument x is " + x + "\n");
> > return ( (2.0 * y)/x );
> > }
> > The problem is when x is infinity.
> > Argument arg is 378.0812928461101
> > Var y is 1.5798621479294393E164
> > Var x is Infinity
> > Floating point exception (core dumped)
> > I tested on Linux x/86 and it is working, the problem is on Tru64
Unix
>
> Fascianting. It looks as though floating-point exceptions trigger a
> signal on this system. I've never come across a system which does
> this before.
>
> Can you please write a trivial C program that does the same thing and
> see if it also results in a Floating point exception?
>
> Thanks,
> Andrew.
>