OSDN Git Service

* gcc.c-torture/execute/960321-1.x: Remove.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / ieee / fp-cmp-1.c
index 3c3ccb6..0655c73 100644 (file)
@@ -1,6 +1,8 @@
+#ifndef SIGNAL_SUPPRESS
 #include <signal.h>
+#endif
 
-double nan = 1.0/0.0 - 1.0/0.0;
+double dnan = 1.0/0.0 - 1.0/0.0;
 double x = 1.0;
 
 void leave ()
@@ -11,29 +13,30 @@ void leave ()
 main ()
 {
 #if ! defined (__vax__) && ! defined (_CRAY)
-  /* NaN is an IEEE unordered operand.  All these test should be false.  */
-  if (nan == nan)
-    abort ();
-  if (nan != x)
-    x = 1.0;
-  else
-    abort ();
-
+  /* Move this line earlier, for architectures (like alpha) that issue 
+     SIGFPE on the first comparisons. */
 #ifndef SIGNAL_SUPPRESS
   /* Some machines catches a SIGFPE when a NaN is compared.
      Let this test succeed o such machines.  */
   signal (SIGFPE, leave);
 #endif
+  /* NaN is an IEEE unordered operand.  All these test should be false.  */
+  if (dnan == dnan)
+    abort ();
+  if (dnan != x)
+    x = 1.0;
+  else
+    abort ();
 
-  if (nan < x)
+  if (dnan < x)
     abort ();
-  if (nan > x)
+  if (dnan > x)
     abort ();
-  if (nan <= x)
+  if (dnan <= x)
     abort ();
-  if (nan >= x)
+  if (dnan >= x)
     abort ();
-  if (nan == x)
+  if (dnan == x)
     abort ();
 #endif
   exit (0);