sverre@lev.Seri.GOV (Sverre Froyen) (03/18/91)
I am puzzled. Trying to track down the cause of colons `:' in some of the floating point numers output from the compiler I made the following change to frexp.c (I am using estdio and the libfp.a I posted): *** 1.1 1991/03/12 20:05:28 --- frexp.c 1991/03/15 20:49:16 *************** *** 16,23 **** sign = value.s[S_MS] & SIGN_MASK; value.s[S_MS] &= ~SIGN_MASK; ! /* Check for zero */ ! if (value.l[L_MS] == 0 && value.l[L_LS] == 0) { *exp = 0; value.s[S_MS] = sign; } --- 16,25 ---- sign = value.s[S_MS] & SIGN_MASK; value.s[S_MS] &= ~SIGN_MASK; ! /* Check for zero exponent (no denormalized numbers) */ ! if ((value.s[S_MS] & EXP_MASK) == 0) { ! value.l[S_MS] = 0L; ! value.l[L_LS] = 0L; *exp = 0; value.s[S_MS] = sign; } That is, instead of checking just for zeros, I decided to check for zeros and denormalized numbers. This caused the following error message when compiling libm.a (no colons this time): cc -O -DNATIONAL -c erf.c cc: Program cc1 got fatal signal 10. make: Error code 256 I then decided to print-out value.l[L_MS] and value.l[L_LS] in frexp inside the if statement (just before they are zeroed). This resulted in several 0x0 0x0 pairs when compiling erf.c which now compiled without errors. I then thought this might be a compiler bootstrap problem so I removed the print statement and relinked the compiler. The signal 10 error message reappeared. Ideas anyone? Sverre -- Sverre Froyen sverre@seri.gov, sunpeaks!seri!sverre