modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-1.c (about) 1 #ifndef SIGNAL_SUPPRESS 2 #include <signal.h> 3 #endif 4 5 double dnan = 1.0/0.0 - 1.0/0.0; 6 double x = 1.0; 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 }