www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/03/07/04:06:42

Date: Thu, 07 Mar 1996 10:02:55 +0100 (MET)
From: erik AT tntnhb3 DOT tn DOT tudelft DOT nl (Erik Luijten)
Subject: floating p. exception behaves strange
To: djgpp AT delorie DOT com (djgpp)
Message-id: <9603070902.AA07840@tntnhb3.tn.tudelft.nl>

Hi!

I have continued some experiments with paranoia.c and found some very
strange behavior (IMHO) when paranoia tries to calculate 1/0 and 0/0.
I have compiled the program on a 386 and run it on several machines. These
are the results:

386+387 (CWSDPMI): 1/0 = FLOATING POINT EXCEPTION 289
                   0/0 = 0.0000000000

486DX   (CWSDPMI): 1/0 = FLOATING POINT EXCEPTION 289
                   0/0 = 0.0000000000

Pentium (Win95)  : 1/0 = FLOATING POINT EXCEPTION 289
                   0/0 = FLOATING POINT EXCEPTION 289


But there is more: if I run the program twice, it behaves the second time
precisely like it did the first time (on the 386 and 486). However, on the
Pentium, the program immediately quits with "signal SGIFPE" the second time
it is run. If I then start it for the third time, everything is normal again.
In other words: it seems that the floating point exception of a previous
run affect the next run (at least if Win95 is the DPMI-host).

Isn't this strange?

Erik

-- 
         Erik Luijten          |   Theoretical Physics Section
  erik AT tntnhb3 DOT tn DOT tudelft DOT nl   |   Faculty of Applied Physics
                               |   Delft University of Technology
      tel. +31-15-2786156      |   P.O. Box 5046
      fax  +31-15-2781203      |   2600 GA Delft --- The Netherlands

- Raw text -


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