diff options
author | Szabolcs Nagy <nsz@port70.net> | 2015-03-07 11:00:37 +0100 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2015-03-07 12:05:28 -0500 |
commit | 559de8f5f06da9022cbba70e22e14a710eb74513 (patch) | |
tree | f8980299d0f0a77f4a613c2fc58ada81b789aa66 /src/fenv | |
parent | bd67959f3ad5049c35af0a0e2f8f1a1e60577a49 (diff) | |
download | musl-559de8f5f06da9022cbba70e22e14a710eb74513.tar.gz musl-559de8f5f06da9022cbba70e22e14a710eb74513.tar.bz2 musl-559de8f5f06da9022cbba70e22e14a710eb74513.tar.xz musl-559de8f5f06da9022cbba70e22e14a710eb74513.zip |
fix FLT_ROUNDS to reflect the current rounding mode
Implemented as a wrapper around fegetround introducing a new function
to the ABI: __flt_rounds. (fegetround cannot be used directly from float.h)
Diffstat (limited to 'src/fenv')
-rw-r--r-- | src/fenv/__flt_rounds.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/fenv/__flt_rounds.c b/src/fenv/__flt_rounds.c new file mode 100644 index 00000000..ec0b3689 --- /dev/null +++ b/src/fenv/__flt_rounds.c @@ -0,0 +1,19 @@ +#include <float.h> +#include <fenv.h> + +int __flt_rounds() +{ + switch (fegetround()) { +#ifdef FE_TOWARDZERO + case FE_TOWARDZERO: return 0; +#endif + case FE_TONEAREST: return 1; +#ifdef FE_UPWARD + case FE_UPWARD: return 2; +#endif +#ifdef FE_DOWNWARD + case FE_DOWNWARD: return 3; +#endif + } + return -1; +} |