math: fix __fpclassifyl(-0.0) for IEEE binary128
[oweals/musl.git] / src / math / nearbyint.c
1 #include <fenv.h>
2 #include <math.h>
3
4 /* nearbyint is the same as rint, but it must not raise the inexact exception */
5
6 double nearbyint(double x)
7 {
8 #ifdef FE_INEXACT
9         #pragma STDC FENV_ACCESS ON
10         int e;
11
12         e = fetestexcept(FE_INEXACT);
13 #endif
14         x = rint(x);
15 #ifdef FE_INEXACT
16         if (!e)
17                 feclearexcept(FE_INEXACT);
18 #endif
19         return x;
20 }