2008-05-30 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / ieee / fp-cmp-1.c
blob0655c73a1f8b8a8b2cc88ffc7292bc948594b391
1 #ifndef SIGNAL_SUPPRESS
2 #include <signal.h>
3 #endif
5 double dnan = 1.0/0.0 - 1.0/0.0;
6 double x = 1.0;
8 void leave ()
10 exit (0);
13 main ()
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 ();
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);