soft-fp: make ordered comparisons raise "invalid" for quiet NaNs (bug 14910).
authorJoseph Myers <joseph@codesourcery.com>
Sat, 12 Oct 2013 12:22:14 +0000 (12:22 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Sat, 12 Oct 2013 12:22:14 +0000 (12:22 +0000)
ChangeLog
NEWS
soft-fp/gedf2.c
soft-fp/gesf2.c
soft-fp/getf2.c
soft-fp/ledf2.c
soft-fp/lesf2.c
soft-fp/letf2.c

index 2b2e470942ce5830c2c1d679fbb7ae9f980e0733..87a12388fa8c1059e5c9734dfec280db94e8a28d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2013-10-12  Joseph Myers  <joseph@codesourcery.com>
 
+       [BZ #14910]
+       * soft-fp/gedf2.c (__gedf2): Raise "invalid" exception for all
+       unordered operands.
+       * soft-fp/gesf2.c (__gesf2): Likewise.
+       * soft-fp/getf2.c (__getf2): Likewise.
+       * soft-fp/ledf2.c (__ledf2): Likewise.
+       * soft-fp/lesf2.c (__lesf2): Likewise.
+       * soft-fp/letf2.c (__letf2): Likewise.
+
        * soft-fp/eqdf2.c (__eqdf2): Use FP_INIT_EXCEPTIONS.
        * soft-fp/eqsf2.c (__eqsf2): Likewise.
        * soft-fp/eqtf2.c (__eqtf2): Likewise.
diff --git a/NEWS b/NEWS
index 74231dc45cb6d117488c11fda710e9de6848ccbf..f72f0598c3ad4b1214d162817d87bf5e524967ef 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,12 +9,12 @@ Version 2.19
 
 * The following bugs are resolved with this release:
 
-  156, 431, 13982, 13985, 14155, 14547, 14699, 15048, 15362, 15400, 15427,
-  15522, 15531, 15532, 15608, 15609, 15610, 15632, 15640, 15680, 15681,
-  15723, 15734, 15735, 15736, 15748, 15749, 15754, 15760, 15797, 15844,
-  15849, 15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890, 15892,
-  15893, 15895, 15897, 15905, 15909, 15919, 15921, 15923, 15939, 15963,
-  15966, 15988, 16032, 16034.
+  156, 431, 13982, 13985, 14155, 14547, 14699, 14910, 15048, 15362, 15400,
+  15427, 15522, 15531, 15532, 15608, 15609, 15610, 15632, 15640, 15680,
+  15681, 15723, 15734, 15735, 15736, 15748, 15749, 15754, 15760, 15797,
+  15844, 15849, 15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890,
+  15892, 15893, 15895, 15897, 15905, 15909, 15919, 15921, 15923, 15939,
+  15963, 15966, 15988, 16032, 16034.
 
 * CVE-2012-4412 The strcoll implementation caches indices and rules for
   large collation sequences to optimize multiple passes.  This cache
index a36f5723a428c994badaa1235821a0e4054c1f3d..fa2b525c3c62fb0644b24f9f8e1fcb536c52e5e9 100644 (file)
@@ -41,7 +41,7 @@ CMPtype __gedf2(DFtype a, DFtype b)
   FP_UNPACK_RAW_D(A, a);
   FP_UNPACK_RAW_D(B, b);
   FP_CMP_D(r, A, B, -2);
-  if (r == -2 && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
+  if (r == -2)
     FP_SET_EXCEPTION(FP_EX_INVALID);
   FP_HANDLE_EXCEPTIONS;
 
index 899fcc5c90cfb513d230b5023e8d83ee964280ff..47789374195776afa40b0a0f1250115409aaed41 100644 (file)
@@ -41,7 +41,7 @@ CMPtype __gesf2(SFtype a, SFtype b)
   FP_UNPACK_RAW_S(A, a);
   FP_UNPACK_RAW_S(B, b);
   FP_CMP_S(r, A, B, -2);
-  if (r == -2 && (FP_ISSIGNAN_S(A) || FP_ISSIGNAN_S(B)))
+  if (r == -2)
     FP_SET_EXCEPTION(FP_EX_INVALID);
   FP_HANDLE_EXCEPTIONS;
 
index d9cb26de07befab0ec90c1ede8cb2d4d5afb6366..4c544d4dd9c7d32ac35bd33e292b3e4e9ec9acbb 100644 (file)
@@ -41,7 +41,7 @@ CMPtype __getf2(TFtype a, TFtype b)
   FP_UNPACK_RAW_Q(A, a);
   FP_UNPACK_RAW_Q(B, b);
   FP_CMP_Q(r, A, B, -2);
-  if (r == -2 && (FP_ISSIGNAN_Q(A) || FP_ISSIGNAN_Q(B)))
+  if (r == -2)
     FP_SET_EXCEPTION(FP_EX_INVALID);
   FP_HANDLE_EXCEPTIONS;
 
index 6922d2ff6e52a1ee0d278780fa54bf0240d93e30..7d54e9896afaedea13d207194289b9e00bf4ba47 100644 (file)
@@ -41,7 +41,7 @@ CMPtype __ledf2(DFtype a, DFtype b)
   FP_UNPACK_RAW_D(A, a);
   FP_UNPACK_RAW_D(B, b);
   FP_CMP_D(r, A, B, 2);
-  if (r == 2 && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
+  if (r == 2)
     FP_SET_EXCEPTION(FP_EX_INVALID);
   FP_HANDLE_EXCEPTIONS;
 
index cee56143c072df41b9fa83c6eb42f6dd4cb5c72c..954a418cdc2e5cb49e6c934fc7aacc798ca3c186 100644 (file)
@@ -41,7 +41,7 @@ CMPtype __lesf2(SFtype a, SFtype b)
   FP_UNPACK_RAW_S(A, a);
   FP_UNPACK_RAW_S(B, b);
   FP_CMP_S(r, A, B, 2);
-  if (r == 2 && (FP_ISSIGNAN_S(A) || FP_ISSIGNAN_S(B)))
+  if (r == 2)
     FP_SET_EXCEPTION(FP_EX_INVALID);
   FP_HANDLE_EXCEPTIONS;
 
index 7644b26036823b38877b3853c8bb63bd31aee45e..76d6119f1caee31cecda638198191c21705ec1ee 100644 (file)
@@ -41,7 +41,7 @@ CMPtype __letf2(TFtype a, TFtype b)
   FP_UNPACK_RAW_Q(A, a);
   FP_UNPACK_RAW_Q(B, b);
   FP_CMP_Q(r, A, B, 2);
-  if (r == 2 && (FP_ISSIGNAN_Q(A) || FP_ISSIGNAN_Q(B)))
+  if (r == 2)
     FP_SET_EXCEPTION(FP_EX_INVALID);
   FP_HANDLE_EXCEPTIONS;