(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
ieee/
fp-cmp-3.c
       1  #ifndef SIGNAL_SUPPRESS
       2  #include <signal.h>
       3  #endif
       4  
       5  long double dnan = 1.0l/0.0l - 1.0l/0.0l;
       6  long double x = 1.0l;
       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 (dnan == dnan)
      25      abort ();
      26    if (dnan != x)
      27      x = 1.0;
      28    else
      29      abort ();
      30  
      31    if (dnan < x)
      32      abort ();
      33    if (dnan > x)
      34      abort ();
      35    if (dnan <= x)
      36      abort ();
      37    if (dnan >= x)
      38      abort ();
      39    if (dnan == x)
      40      abort ();
      41  #endif
      42    exit (0);
      43  }