(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
ieee/
fp-cmp-2.c
       1  #ifndef SIGNAL_SUPPRESS
       2  #include <signal.h>
       3  #endif
       4  
       5  float fnan = 1.0f/0.0f - 1.0f/0.0f;
       6  float x = 1.0f;
       7  
       8  void leave ()
       9  {
      10    exit (0);
      11  }
      12  
      13  main ()
      14  {
      15  #if ! defined (__vax__) && ! defined (_CRAY)
      16    /* Move this line earlier, for architectures (like alpha) that issue 
      17       SIGFPE on the first comparisons. */
      18  #ifndef SIGNAL_SUPPRESS
      19    /* Some machines catches a SIGFPE when a NaN is compared.
      20       Let this test succeed o such machines.  */
      21    signal (SIGFPE, leave);
      22  #endif
      23    /* NaN is an IEEE unordered operand.  All these test should be false.  */
      24    if (fnan == fnan)
      25      abort ();
      26    if (fnan != x)
      27      x = 1.0;
      28    else
      29      abort ();
      30  
      31    if (fnan < x)
      32      abort ();
      33    if (fnan > x)
      34      abort ();
      35    if (fnan <= x)
      36      abort ();
      37    if (fnan >= x)
      38      abort ();
      39    if (fnan == x)
      40      abort ();
      41  #endif
      42    exit (0);
      43  }