math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed
authorSzabolcs Nagy <nsz@port70.net>
Tue, 13 Nov 2012 12:34:45 +0000 (13:34 +0100)
committerSzabolcs Nagy <nsz@port70.net>
Tue, 13 Nov 2012 12:34:45 +0000 (13:34 +0100)
src/fenv/feupdateenv.c
src/math/fma.c
src/math/fmaf.c
src/math/fmal.c
src/math/llrintl.c
src/math/lrint.c
src/math/lrintl.c
src/math/nearbyint.c
src/math/nearbyintf.c
src/math/nearbyintl.c

index 50cef8e..f45ed7c 100644 (file)
@@ -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);
index 7076d4b..17f1cdc 100644 (file)
@@ -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;
index cc427fb..a1c7f4f 100644 (file)
@@ -37,6 +37,7 @@
  */
 float fmaf(float x, float y, float z)
 {
+       #pragma STDC FENV_ACCESS ON
        double xy, result;
        uint32_t hr, lr;
 
index be64f14..ccbe434 100644 (file)
@@ -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;
index 32bb8b0..3449f6f 100644 (file)
@@ -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);
index 6709183..bdca8b7 100644 (file)
@@ -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);
index 5eb1ba7..b2a8106 100644 (file)
@@ -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);
index 7a4c58c..f4e8aac 100644 (file)
@@ -6,6 +6,7 @@
 double nearbyint(double x)
 {
 #ifdef FE_INEXACT
+       #pragma STDC FENV_ACCESS ON
        int e;
 
        e = fetestexcept(FE_INEXACT);
index 39c3d73..092e9ff 100644 (file)
@@ -4,6 +4,7 @@
 float nearbyintf(float x)
 {
 #ifdef FE_INEXACT
+       #pragma STDC FENV_ACCESS ON
        int e;
 
        e = fetestexcept(FE_INEXACT);
index 0ff4b1f..8285249 100644 (file)
@@ -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);