summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzabolcs Nagy <nsz@port70.net>2012-11-13 13:34:45 +0100
committerSzabolcs Nagy <nsz@port70.net>2012-11-13 13:34:45 +0100
commit033a9d6ad2a65ac03156b179e7c6101d2e72c4c0 (patch)
tree8766fcbb535225041d0d4afe330a8ae686c1ef4d
parentc4359e01303da2755fe7e8033826b132eb3659b1 (diff)
downloadmusl-033a9d6ad2a65ac03156b179e7c6101d2e72c4c0.tar.gz
math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed
-rw-r--r--src/fenv/feupdateenv.c1
-rw-r--r--src/math/fma.c2
-rw-r--r--src/math/fmaf.c1
-rw-r--r--src/math/fmal.c1
-rw-r--r--src/math/llrintl.c1
-rw-r--r--src/math/lrint.c1
-rw-r--r--src/math/lrintl.c1
-rw-r--r--src/math/nearbyint.c1
-rw-r--r--src/math/nearbyintf.c1
-rw-r--r--src/math/nearbyintl.c1
10 files changed, 11 insertions, 0 deletions
diff --git a/src/fenv/feupdateenv.c b/src/fenv/feupdateenv.c
index 50cef8e5..f45ed7c0 100644
--- a/src/fenv/feupdateenv.c
+++ b/src/fenv/feupdateenv.c
@@ -2,6 +2,7 @@
int feupdateenv(const fenv_t *envp)
{
+ #pragma STDC FENV_ACCESS ON
int ex = fetestexcept(FE_ALL_EXCEPT);
fesetenv(envp);
feraiseexcept(ex);
diff --git a/src/math/fma.c b/src/math/fma.c
index 7076d4b9..17f1cdcc 100644
--- a/src/math/fma.c
+++ b/src/math/fma.c
@@ -89,6 +89,7 @@ static int getexp(long double x)
double fma(double x, double y, double z)
{
+ #pragma STDC FENV_ACCESS ON
long double hi, lo1, lo2, xy;
int round, ez, exy;
@@ -306,6 +307,7 @@ static inline struct dd dd_mul(double a, double b)
*/
double fma(double x, double y, double z)
{
+ #pragma STDC FENV_ACCESS ON
double xs, ys, zs, adj;
struct dd xy, r;
int oround;
diff --git a/src/math/fmaf.c b/src/math/fmaf.c
index cc427fb5..a1c7f4f8 100644
--- a/src/math/fmaf.c
+++ b/src/math/fmaf.c
@@ -37,6 +37,7 @@
*/
float fmaf(float x, float y, float z)
{
+ #pragma STDC FENV_ACCESS ON
double xy, result;
uint32_t hr, lr;
diff --git a/src/math/fmal.c b/src/math/fmal.c
index be64f145..ccbe434d 100644
--- a/src/math/fmal.c
+++ b/src/math/fmal.c
@@ -162,6 +162,7 @@ static inline struct dd dd_mul(long double a, long double b)
*/
long double fmal(long double x, long double y, long double z)
{
+ #pragma STDC FENV_ACCESS ON
long double xs, ys, zs, adj;
struct dd xy, r;
int oround;
diff --git a/src/math/llrintl.c b/src/math/llrintl.c
index 32bb8b03..3449f6f2 100644
--- a/src/math/llrintl.c
+++ b/src/math/llrintl.c
@@ -18,6 +18,7 @@ raises inexact (with tonearest or upward rounding mode)
*/
long long llrintl(long double x)
{
+ #pragma STDC FENV_ACCESS ON
int e;
e = fetestexcept(FE_INEXACT);
diff --git a/src/math/lrint.c b/src/math/lrint.c
index 67091835..bdca8b7c 100644
--- a/src/math/lrint.c
+++ b/src/math/lrint.c
@@ -28,6 +28,7 @@ as a double.
#if LONG_MAX < 1U<<53 && defined(FE_INEXACT)
long lrint(double x)
{
+ #pragma STDC FENV_ACCESS ON
int e;
e = fetestexcept(FE_INEXACT);
diff --git a/src/math/lrintl.c b/src/math/lrintl.c
index 5eb1ba7e..b2a8106d 100644
--- a/src/math/lrintl.c
+++ b/src/math/lrintl.c
@@ -18,6 +18,7 @@ raises inexact (with tonearest or upward rounding mode)
*/
long lrintl(long double x)
{
+ #pragma STDC FENV_ACCESS ON
int e;
e = fetestexcept(FE_INEXACT);
diff --git a/src/math/nearbyint.c b/src/math/nearbyint.c
index 7a4c58cf..f4e8aac4 100644
--- a/src/math/nearbyint.c
+++ b/src/math/nearbyint.c
@@ -6,6 +6,7 @@
double nearbyint(double x)
{
#ifdef FE_INEXACT
+ #pragma STDC FENV_ACCESS ON
int e;
e = fetestexcept(FE_INEXACT);
diff --git a/src/math/nearbyintf.c b/src/math/nearbyintf.c
index 39c3d73b..092e9ffa 100644
--- a/src/math/nearbyintf.c
+++ b/src/math/nearbyintf.c
@@ -4,6 +4,7 @@
float nearbyintf(float x)
{
#ifdef FE_INEXACT
+ #pragma STDC FENV_ACCESS ON
int e;
e = fetestexcept(FE_INEXACT);
diff --git a/src/math/nearbyintl.c b/src/math/nearbyintl.c
index 0ff4b1f9..82852492 100644
--- a/src/math/nearbyintl.c
+++ b/src/math/nearbyintl.c
@@ -11,6 +11,7 @@ long double nearbyintl(long double x)
long double nearbyintl(long double x)
{
#ifdef FE_INEXACT
+ #pragma STDC FENV_ACCESS ON
int e;
e = fetestexcept(FE_INEXACT);