Browse Source

math: use '#pragma STDC FENV_ACCESS ON' when fenv is accessed

rs-1.0
Szabolcs Nagy 14 years ago
parent
commit
033a9d6ad2
  1. 1
      src/fenv/feupdateenv.c
  2. 2
      src/math/fma.c
  3. 1
      src/math/fmaf.c
  4. 1
      src/math/fmal.c
  5. 1
      src/math/llrintl.c
  6. 1
      src/math/lrint.c
  7. 1
      src/math/lrintl.c
  8. 1
      src/math/nearbyint.c
  9. 1
      src/math/nearbyintf.c
  10. 1
      src/math/nearbyintl.c

1
src/fenv/feupdateenv.c

@ -2,6 +2,7 @@
int feupdateenv(const fenv_t *envp) int feupdateenv(const fenv_t *envp)
{ {
#pragma STDC FENV_ACCESS ON
int ex = fetestexcept(FE_ALL_EXCEPT); int ex = fetestexcept(FE_ALL_EXCEPT);
fesetenv(envp); fesetenv(envp);
feraiseexcept(ex); feraiseexcept(ex);

2
src/math/fma.c

@ -89,6 +89,7 @@ static int getexp(long double x)
double fma(double x, double y, double z) double fma(double x, double y, double z)
{ {
#pragma STDC FENV_ACCESS ON
long double hi, lo1, lo2, xy; long double hi, lo1, lo2, xy;
int round, ez, exy; 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) double fma(double x, double y, double z)
{ {
#pragma STDC FENV_ACCESS ON
double xs, ys, zs, adj; double xs, ys, zs, adj;
struct dd xy, r; struct dd xy, r;
int oround; int oround;

1
src/math/fmaf.c

@ -37,6 +37,7 @@
*/ */
float fmaf(float x, float y, float z) float fmaf(float x, float y, float z)
{ {
#pragma STDC FENV_ACCESS ON
double xy, result; double xy, result;
uint32_t hr, lr; uint32_t hr, lr;

1
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) long double fmal(long double x, long double y, long double z)
{ {
#pragma STDC FENV_ACCESS ON
long double xs, ys, zs, adj; long double xs, ys, zs, adj;
struct dd xy, r; struct dd xy, r;
int oround; int oround;

1
src/math/llrintl.c

@ -18,6 +18,7 @@ raises inexact (with tonearest or upward rounding mode)
*/ */
long long llrintl(long double x) long long llrintl(long double x)
{ {
#pragma STDC FENV_ACCESS ON
int e; int e;
e = fetestexcept(FE_INEXACT); e = fetestexcept(FE_INEXACT);

1
src/math/lrint.c

@ -28,6 +28,7 @@ as a double.
#if LONG_MAX < 1U<<53 && defined(FE_INEXACT) #if LONG_MAX < 1U<<53 && defined(FE_INEXACT)
long lrint(double x) long lrint(double x)
{ {
#pragma STDC FENV_ACCESS ON
int e; int e;
e = fetestexcept(FE_INEXACT); e = fetestexcept(FE_INEXACT);

1
src/math/lrintl.c

@ -18,6 +18,7 @@ raises inexact (with tonearest or upward rounding mode)
*/ */
long lrintl(long double x) long lrintl(long double x)
{ {
#pragma STDC FENV_ACCESS ON
int e; int e;
e = fetestexcept(FE_INEXACT); e = fetestexcept(FE_INEXACT);

1
src/math/nearbyint.c

@ -6,6 +6,7 @@
double nearbyint(double x) double nearbyint(double x)
{ {
#ifdef FE_INEXACT #ifdef FE_INEXACT
#pragma STDC FENV_ACCESS ON
int e; int e;
e = fetestexcept(FE_INEXACT); e = fetestexcept(FE_INEXACT);

1
src/math/nearbyintf.c

@ -4,6 +4,7 @@
float nearbyintf(float x) float nearbyintf(float x)
{ {
#ifdef FE_INEXACT #ifdef FE_INEXACT
#pragma STDC FENV_ACCESS ON
int e; int e;
e = fetestexcept(FE_INEXACT); e = fetestexcept(FE_INEXACT);

1
src/math/nearbyintl.c

@ -11,6 +11,7 @@ long double nearbyintl(long double x)
long double nearbyintl(long double x) long double nearbyintl(long double x)
{ {
#ifdef FE_INEXACT #ifdef FE_INEXACT
#pragma STDC FENV_ACCESS ON
int e; int e;
e = fetestexcept(FE_INEXACT); e = fetestexcept(FE_INEXACT);

Loading…
Cancel
Save