summaryrefslogtreecommitdiff
path: root/src/math/lrint.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-03-16 23:58:49 -0400
committerRich Felker <dalias@aerifal.cx>2012-03-16 23:58:49 -0400
commit2e77dc13f8bc2053642fcb136996f5f36c88c775 (patch)
treec0fc346570b01898381431c51cd7520a22c402fb /src/math/lrint.c
parent8c071f872b2844ca297275176047f8d23eec96a7 (diff)
downloadmusl-2e77dc13f8bc2053642fcb136996f5f36c88c775.tar.gz
make fma and lrint functions build without full fenv support
this is necessary to support archs where fenv is incomplete or unavailable (presently arm). fma, fmal, and the lrint family should work perfectly fine with this change; fmaf is slightly broken with respect to rounding as it depends on non-default rounding modes to do its work.
Diffstat (limited to 'src/math/lrint.c')
-rw-r--r--src/math/lrint.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/math/lrint.c b/src/math/lrint.c
index 98d58ad0..9754fa74 100644
--- a/src/math/lrint.c
+++ b/src/math/lrint.c
@@ -49,8 +49,10 @@ dtype fn(type x)
feholdexcept(&env);
d = (dtype)roundit(x);
+#if defined(FE_INVALID) && defined(FE_INEXACT)
if (fetestexcept(FE_INVALID))
feclearexcept(FE_INEXACT);
+#endif
feupdateenv(&env);
return d;
}