mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
soft-fp: make ordered comparisons raise "invalid" for quiet NaNs (bug 14910).
This commit is contained in:
parent
98998e9f51
commit
8a50944770
@ -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.
|
||||
|
12
NEWS
12
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
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user