diff options
author | Fabian Schriever <fabian.schriever@gtd-gmbh.de> | 2020-03-11 10:58:05 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2020-03-11 12:10:58 +0100 |
commit | c56f53a2a04577f6e84ac96477fc8dc804d544ef (patch) | |
tree | 89ee5e90daaf3fbcfcac8bdc3bf7240fc6013add /newlib/libm/common/sf_trunc.c | |
parent | 91a8d0c90767f82202e08ba7e3fd6b4e1419ec00 (diff) | |
download | newlib-c56f53a2a04577f6e84ac96477fc8dc804d544ef.zip newlib-c56f53a2a04577f6e84ac96477fc8dc804d544ef.tar.gz newlib-c56f53a2a04577f6e84ac96477fc8dc804d544ef.tar.bz2 |
Fix truncf for sNaN input
Make line 47 in sf_trunc.c reachable. While converting the double
precision function trunc to the single precision version truncf an error
was introduced into the special case. This special case is meant to
catch both NaNs and infinities, however qNaNs and infinities work just
fine with the simple return of x (line 51). The only error occurs for
sNaNs where the same sNaN is returned and no invalid exception is
raised.
Diffstat (limited to 'newlib/libm/common/sf_trunc.c')
-rw-r--r-- | newlib/libm/common/sf_trunc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/newlib/libm/common/sf_trunc.c b/newlib/libm/common/sf_trunc.c index 74ea933..8eb0554 100644 --- a/newlib/libm/common/sf_trunc.c +++ b/newlib/libm/common/sf_trunc.c @@ -42,7 +42,7 @@ } else { - if (exponent_less_127 == 255) + if (exponent_less_127 == 128) /* x is NaN or infinite. */ return x + x; |