delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/07/10/19:46:30

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
From: Jim Heasley <heasley AT hoku DOT ifa DOT hawaii DOT edu>
Message-Id: <200007102342.NAA03673@kulia.ifa.hawaii.edu>
Subject: Net version 1.1.0: gcc 2.95.2-2 compiler bug
To: cygwin AT sourceware DOT cygnus DOT com
Date: Mon, 10 Jul 2000 13:42:35 -1000 (HST)
X-Mailer: ELM [version 2.5 PL1]
MIME-Version: 1.0

In porting some astronomical data handling software from linux/unix to
Cygwin (the latest nework release, 1.1.0 I believe), I discovered an
error in how gcc 2.95.2-2 generates output of a floating or double
variable set to 0.0 when formatted with a %E format.  I didn't get any
hits on this problem in the FAQ or mail lists.  The following little
test program illustrates the problem:


main()
{
	float value = 0.0;
	double dvalue = 0.0;
	printf("%11.0f %15.6f %13.5E\n",value,value,value);
	printf("%11.0f %15.6f %21.14E\n",dvalue,dvalue,dvalue);
	dvalue = value = 3.0;
	printf("%11.0f %15.6f %13.5E\n",value,value,value);
	printf("%11.0f %15.6f %21.14E\n",dvalue,dvalue,dvalue);
}
	        
Under linux/unix, this little program produces the following
output:

          0        0.000000   0.00000E+00
          0        0.000000  0.00000000000000E+00
          3        3.000000   3.00000E+00
          3        3.000000  3.00000000000000E+00

But the following is produced by the Cygwin gcc 2.95.2-2:

	  0        0.000000   0.
          0        0.000000  0.
          3        3.000000   3.00000E+00
          3        3.000000  3.00000000000000E+00

When the output is sent to the terminal screen, the results for 0.0 with
the E format come out as 0.  followed by some "strange" characters and
then E+00.  Saving stdout to a file and then moving from Cygwin to linux,
I find there are a bunch of control characters after the leading 0.  and
preceeding the E+00. 

Sorry, I don't know enough about compilers to even take a wack a solving
this problem, but would very much appreciate a patch for the sources
or a working binary with the patch incorporated if someone could kindly
generate one. 

Thanks,

Jim Heasley
Professor of Astronomy

Institute for Astronomy			heasley AT hoku DOT ifa DOT hawaii DOT edu
University of Hawaii			phone: 808-956-6826
2680 Woodlawn Drive			fax:   808-956-9580
Honolulu, HI 96822

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019