1  
       2  const double dnan = 1.0/0.0 - 1.0/0.0;
       3  double x = 1.0;
       4  
       5  extern void link_error (void);
       6  extern void abort (void);
       7  
       8  main ()
       9  {
      10  #if ! defined (__vax__) && ! defined (_CRAY)
      11    /* NaN is an IEEE unordered operand.  All these test should be false.  */
      12    if (dnan == dnan)
      13      link_error ();
      14    if (dnan != x)
      15      x = 1.0;
      16    else
      17      link_error ();
      18  
      19    if (dnan == x)
      20      link_error ();
      21  #endif
      22    exit (0);
      23  }
      24  
      25  #ifndef __OPTIMIZE__
      26  void link_error (void)
      27  {
      28    abort ();
      29  }
      30  #endif
      31