real.c (real_identical): Reorg so as to not compare signalling for normals.
authorRichard Henderson <rth@redhat.com>
Mon, 31 Mar 2003 21:02:10 +0000 (13:02 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 31 Mar 2003 21:02:10 +0000 (13:02 -0800)
        * real.c (real_identical): Reorg so as to not compare
        signalling for normals.

From-SVN: r65111

gcc/ChangeLog
gcc/real.c

index 76002630923897b2d1af5a8e8d8a501a6d0d7d3b..3dcc8be7cb9781ebab4c581d112fe85509c1fa5b 100644 (file)
@@ -1,3 +1,8 @@
+2003-03-31  Richard Henderson  <rth@redhat.com>
+
+       * real.c (real_identical): Reorg so as to not compare
+       signalling for normals.
+
 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
 
        * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
index 04bf718a74343ce15284c506a85c9082888f79bf..29d5de1f01448b0b33ccd471878f684486dc5b0f 100644 (file)
@@ -1227,24 +1227,26 @@ real_identical (a, b)
     {
     case rvc_zero:
     case rvc_inf:
-      break;
+      return true;
 
     case rvc_normal:
       if (a->exp != b->exp)
        return false;
-      /* FALLTHRU */
+      break;
+
     case rvc_nan:
       if (a->signalling != b->signalling)
        return false;
-      for (i = 0; i < SIGSZ; ++i)
-       if (a->sig[i] != b->sig[i])
-         return false;
       break;
 
     default:
       abort ();
     }
 
+  for (i = 0; i < SIGSZ; ++i)
+    if (a->sig[i] != b->sig[i])
+      return false;
+
   return true;
 }