Fix Jet test failures on ARMv8 with recent Xcode Fixes #774 Change-Id: I741924bc82f62f122c47df2b38e02a50e0fdb0da
diff --git a/internal/ceres/jet_test.cc b/internal/ceres/jet_test.cc index 6a76e1d..ef05f40 100644 --- a/internal/ceres/jet_test.cc +++ b/internal/ceres/jet_test.cc
@@ -32,8 +32,11 @@ // with the following pragma. #ifdef _MSC_VER #pragma fenv_access(on) -#else +#elif !(defined(__ARM_ARCH) && __ARM_ARCH >= 8) +// NOTE: FENV_ACCESS cannot be set to ON when targeting arm(v8) #pragma STDC FENV_ACCESS ON +#else +#define CERES_NO_FENV_ACCESS #endif #include "ceres/jet.h" @@ -699,7 +702,9 @@ EXPECT_THAT(fmax(std::numeric_limits<double>::quiet_NaN(), x), IsAlmostEqualTo(x)); +#ifndef CERES_NO_FENV_ACCESS EXPECT_EQ(std::fetestexcept(FE_ALL_EXCEPT & ~FE_INEXACT), 0); +#endif } TEST(Jet, Fmin) { @@ -719,7 +724,9 @@ EXPECT_THAT(fmin(std::numeric_limits<double>::quiet_NaN(), x), IsAlmostEqualTo(x)); +#ifndef CERES_NO_FENV_ACCESS EXPECT_EQ(std::fetestexcept(FE_ALL_EXCEPT & ~FE_INEXACT), 0); +#endif } TEST(Jet, Fdim) { @@ -744,7 +751,9 @@ EXPECT_TRUE(isnan(fdim(x, std::numeric_limits<double>::quiet_NaN()))); EXPECT_TRUE(isnan(fdim(std::numeric_limits<double>::quiet_NaN(), x))); +#ifndef CERES_NO_FENV_ACCESS EXPECT_EQ(std::fetestexcept(FE_ALL_EXCEPT & ~FE_INEXACT), 0); +#endif } TEST(Jet, CopySign) {