Net version 1.1.0: gcc 2.95.2-2 compiler bug
Jim Heasley
heasley@hoku.ifa.hawaii.edu
Mon Jul 10 16:45:00 GMT 2000
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@hoku.ifa.hawaii.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@sourceware.cygnus.com
More information about the Cygwin
mailing list