mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
soft-fp: make __unord* raise "invalid" for signaling NaNs (bug 16036).
This commit is contained in:
parent
8a50944770
commit
b7ea74f074
@ -1,5 +1,11 @@
|
||||
2013-10-12 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #16036]
|
||||
* soft-fp/unorddf2.c (__unorddf2): Raise "invalid" exception for
|
||||
signaling NaN arguments.
|
||||
* soft-fp/unordsf2.c (__unordsf2): Likewise.
|
||||
* soft-fp/unordtf2.c (__unordtf2): Likewise.
|
||||
|
||||
[BZ #14910]
|
||||
* soft-fp/gedf2.c (__gedf2): Raise "invalid" exception for all
|
||||
unordered operands.
|
||||
|
2
NEWS
2
NEWS
@ -14,7 +14,7 @@ Version 2.19
|
||||
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.
|
||||
15963, 15966, 15988, 16032, 16034, 16036.
|
||||
|
||||
* CVE-2012-4412 The strcoll implementation caches indices and rules for
|
||||
large collation sequences to optimize multiple passes. This cache
|
||||
|
@ -32,12 +32,17 @@
|
||||
|
||||
CMPtype __unorddf2(DFtype a, DFtype b)
|
||||
{
|
||||
FP_DECL_EX;
|
||||
FP_DECL_D(A); FP_DECL_D(B);
|
||||
CMPtype r;
|
||||
|
||||
FP_INIT_EXCEPTIONS;
|
||||
FP_UNPACK_RAW_D(A, a);
|
||||
FP_UNPACK_RAW_D(B, b);
|
||||
FP_CMP_UNORD_D(r, A, B);
|
||||
if (r && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
|
||||
FP_SET_EXCEPTION(FP_EX_INVALID);
|
||||
FP_HANDLE_EXCEPTIONS;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
@ -32,13 +32,18 @@
|
||||
|
||||
CMPtype __unordsf2(SFtype a, SFtype b)
|
||||
{
|
||||
FP_DECL_EX;
|
||||
FP_DECL_S(A);
|
||||
FP_DECL_S(B);
|
||||
CMPtype r;
|
||||
|
||||
FP_INIT_EXCEPTIONS;
|
||||
FP_UNPACK_RAW_S(A, a);
|
||||
FP_UNPACK_RAW_S(B, b);
|
||||
FP_CMP_UNORD_S(r, A, B);
|
||||
if (r && (FP_ISSIGNAN_S(A) || FP_ISSIGNAN_S(B)))
|
||||
FP_SET_EXCEPTION(FP_EX_INVALID);
|
||||
FP_HANDLE_EXCEPTIONS;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
@ -32,13 +32,18 @@
|
||||
|
||||
CMPtype __unordtf2(TFtype a, TFtype b)
|
||||
{
|
||||
FP_DECL_EX;
|
||||
FP_DECL_Q(A);
|
||||
FP_DECL_Q(B);
|
||||
CMPtype r;
|
||||
|
||||
FP_INIT_EXCEPTIONS;
|
||||
FP_UNPACK_RAW_Q(A, a);
|
||||
FP_UNPACK_RAW_Q(B, b);
|
||||
FP_CMP_UNORD_Q(r, A, B);
|
||||
if (r && (FP_ISSIGNAN_Q(A) || FP_ISSIGNAN_Q(B)))
|
||||
FP_SET_EXCEPTION(FP_EX_INVALID);
|
||||
FP_HANDLE_EXCEPTIONS;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user