FE_INVALID
float_flag_invalid = FE_INVALID
float_flag_invalid = FE_INVALID
ATF_REQUIRE(fetestexcept(FE_INVALID) == 0);
ATF_REQUIRE(fetestexcept(FE_INVALID) == 0);
FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW | FE_DENORMAL)
FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
if (__excepts & FE_INVALID)
if (__excepts & FE_INVALID)
if (__excepts & FE_INVALID)
FE_VXSNAN | FE_INVALID)
#define _ENABLE_MASK ((FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \
FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
if (fetestexcept(FE_INVALID))
feraiseexcept(FE_INVALID);
ALL_STD_EXCEPT & ~FE_INVALID, 0, 0);
ALL_STD_EXCEPT & ~(FE_INVALID | FE_INEXACT), 0, 0);
ALL_STD_EXCEPT, FE_INVALID, 1);
FE_INVALID | FE_DIVBYZERO, 0, 1);
FE_INVALID | FE_DIVBYZERO, 0, 1);
FE_INVALID | FE_DIVBYZERO, 0, 1);
FE_INVALID | FE_DIVBYZERO, 0, 1);
ALL_STD_EXCEPT, FE_INVALID, 0);
ALL_STD_EXCEPT, FE_INVALID, 0);
ALL_STD_EXCEPT, FE_INVALID, 0);
ALL_STD_EXCEPT, FE_INVALID, 0);
testall_odd(csinh, z, CMPLXL(0, NAN), ALL_STD_EXCEPT, FE_INVALID, 0);
testall_even(ccosh, z, CMPLXL(NAN, 0), ALL_STD_EXCEPT, FE_INVALID, 0);
testall_odd(ctanh, z, CMPLXL(0, NAN), ALL_STD_EXCEPT, FE_INVALID, CS_REAL);
testall_odd(csin, z, CMPLXL(NAN, 0), ALL_STD_EXCEPT, FE_INVALID, 0);
testall_even(ccos, z, CMPLXL(NAN, 0), ALL_STD_EXCEPT, FE_INVALID, 0);
testall_odd(ctan, z, CMPLXL(NAN, 0), ALL_STD_EXCEPT, FE_INVALID, CS_IMAG);
testall_odd(csinh, z, CMPLXL(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 0);
testall_even(ccosh, z, CMPLXL(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 0);
testall_odd(ctanh, z, CMPLXL(NAN, NAN), OPT_INEXACT, FE_INVALID, 0);
testall_odd(csin, z, CMPLXL(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 0);
testall_even(ccos, z, CMPLXL(NAN, NAN), ALL_STD_EXCEPT, FE_INVALID, 0);
testall_odd(ctan, z, CMPLXL(NAN, NAN), OPT_INEXACT, FE_INVALID, 0);
ATF_CHECK_EQ(0, feraiseexcept(FE_INVALID | FE_DIVBYZERO));
ATF_CHECK_EQ((FE_INVALID | FE_DIVBYZERO), fetestexcept(ALL_STD_EXCEPT));
ATF_CHECK_EQ(0, (feenableexcept(FE_INVALID|FE_OVERFLOW) & ALL_STD_EXCEPT));
ATF_CHECK_EQ((FE_INVALID | FE_OVERFLOW), (feenableexcept(FE_UNDERFLOW) & ALL_STD_EXCEPT));
ATF_CHECK_EQ((FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW), (fedisableexcept(FE_OVERFLOW) & ALL_STD_EXCEPT));
ATF_CHECK_EQ((FE_INVALID | FE_UNDERFLOW), (fegetexcept() & ALL_STD_EXCEPT));
ATF_CHECK_EQ((FE_INVALID | FE_UNDERFLOW), (fedisableexcept(FE_ALL_EXCEPT) & ALL_STD_EXCEPT));
raise = FE_DIVBYZERO | FE_INVALID;
FE_INVALID,
raise = FE_DIVBYZERO | FE_INVALID;
if (excepts & FE_INVALID) {
testall(0.0, INFINITY, 1.0, NAN, ALL_STD_EXCEPT, FE_INVALID);
testall(INFINITY, 0.0, -0.0, NAN, ALL_STD_EXCEPT, FE_INVALID);
testall(INFINITY, 0.0, NAN, NAN, ALL_STD_EXCEPT & ~FE_INVALID, 0);
ALL_STD_EXCEPT, FE_INVALID);
ALL_STD_EXCEPT, FE_INVALID);
ALL_STD_EXCEPT, FE_INVALID);
testall(asin, INFINITY, NAN, FE_INVALID);
testall(acos, INFINITY, NAN, FE_INVALID);
testall(asin, -INFINITY, NAN, FE_INVALID);
testall(acos, -INFINITY, NAN, FE_INVALID);
testall0(-INFINITY, NAN, ALL_STD_EXCEPT, FE_INVALID);
testall1(-INFINITY, NAN, ALL_STD_EXCEPT, FE_INVALID);
testall0(-1.0, NAN, ALL_STD_EXCEPT, FE_INVALID);
testall1(-1.5, NAN, ALL_STD_EXCEPT, FE_INVALID);
test(lrintf, 0x80000000.0p0f, IGNORE, FE_INVALID);
test(lrint, 0x8000000000000000.0p0, IGNORE, FE_INVALID);
test(lrintf, 0x8000000000000000.0p0f, IGNORE, FE_INVALID);
test(lrint, -0x8000000000000800.0p0, IGNORE, FE_INVALID);
test(lrintf, -0x8000010000000000.0p0f, IGNORE, FE_INVALID);
test(llrint, 0x8000000000000000.0p0, IGNORE, FE_INVALID);
test(llrintf, 0x8000000000000000.0p0f, IGNORE, FE_INVALID);
test(llrint, -0x8000000000000800.0p0, IGNORE, FE_INVALID);
test(llrintf, -0x8000010000000000.0p0f, IGNORE, FE_INVALID);
ATF_REQUIRE_MSG(_r == (result) || fetestexcept(FE_INVALID), \
testall(INFINITY, IGNORE, FE_INVALID);
testall(NAN, IGNORE, FE_INVALID);
test(lrint, 0x7fffffff.8p0, IGNORE, FE_INVALID);
test(lrint, -0x80000000.8p0, IGNORE, FE_INVALID);
test(lrint, 0x80000000.0p0, IGNORE, FE_INVALID);
test(lrintf, 0x80000000.0p0f, IGNORE, FE_INVALID);
test(lrint, 0x80000000.0p0, IGNORE, FE_INVALID);
test(llround, 0x8000000000000000.0p0, IGNORE, FE_INVALID);
test(llroundf, 0x8000000000000000.0p0f, IGNORE, FE_INVALID);
test(llround, -0x8000000000000800.0p0, IGNORE, FE_INVALID);
test(llroundf, -0x8000010000000000.0p0f, IGNORE, FE_INVALID);
if ((excepts & FE_INVALID) != 0) { \
ATF_CHECK_EQ_MSG(FE_INVALID, fetestexcept(FE_INVALID), \
testall(INFINITY, IGNORE, FE_INVALID);
testall(NAN, IGNORE, FE_INVALID);
test(lround, 0x7fffffff.8p0, IGNORE, FE_INVALID);
test(lround, -0x80000000.8p0, IGNORE, FE_INVALID);
test(lround, 0x80000000.0p0, IGNORE, FE_INVALID);
test(lroundf, 0x80000000.0p0f, IGNORE, FE_INVALID);
test(lround, 0x8000000000000000.0p0, IGNORE, FE_INVALID);
test(lroundf, 0x8000000000000000.0p0f, IGNORE, FE_INVALID);
test(lround, -0x8000000000000800.0p0, IGNORE, FE_INVALID);
test(lroundf, -0x8000010000000000.0p0f, IGNORE, FE_INVALID);
feenableexcept(FE_INVALID);
#define ALL_STD_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \
#define OPT_INVALID (ALL_STD_EXCEPT & ~FE_INVALID)
testall(tan, INFINITY, NAN, ALL_STD_EXCEPT, FE_INVALID);
testall(sin, INFINITY, NAN, ALL_STD_EXCEPT, FE_INVALID);
testall(cos, INFINITY, NAN, ALL_STD_EXCEPT, FE_INVALID);
testall(tan, -INFINITY, NAN, ALL_STD_EXCEPT, FE_INVALID);
testall(sin, -INFINITY, NAN, ALL_STD_EXCEPT, FE_INVALID);
testall(cos, -INFINITY, NAN, ALL_STD_EXCEPT, FE_INVALID);
FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
fetestexcept(ALL_STD_EXCEPT) == FE_INVALID);
fetestexcept(ALL_STD_EXCEPT) == FE_INVALID);
fetestexcept(ALL_STD_EXCEPT) == FE_INVALID);
#define ALL_STD_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | \