/* A sNaN is only guaranteed to be representable in variables with */ \
/* static (or thread-local) storage duration. */ \
static volatile FLOAT sNaN_var = __builtin_nans ## SUFFIX (""); \
+ static volatile FLOAT minus_sNaN_var = -__builtin_nans ## SUFFIX (""); \
fenv_t saved_fenv; \
\
zero_var = 0.0; \
(void) &one_var; \
(void) &qNaN_var; \
(void) &sNaN_var; \
+ (void) &minus_sNaN_var; \
(void) &Inf_var; \
\
set_sigaction_FP (); \
printf (#FLOAT " isnan (-sNaN) raised SIGFPE\n"); \
errors++; \
} else { \
- check (#FLOAT " isnan (-sNaN)", isnan (-sNaN_var)); \
+ check (#FLOAT " isnan (-sNaN)", isnan (minus_sNaN_var)); \
} \
\
feclearexcept(FE_ALL_EXCEPT); \
printf (#FLOAT " isinf (-sNaN) raised SIGFPE\n"); \
errors++; \
} else { \
- check (#FLOAT " isinf (-sNaN)", !isinf (-sNaN_var)); \
+ check (#FLOAT " isinf (-sNaN)", !isinf (minus_sNaN_var)); \
} \
\
feclearexcept(FE_ALL_EXCEPT); \
printf (#FLOAT " isfinite (-sNaN) raised SIGFPE\n"); \
errors++; \
} else { \
- check (#FLOAT " isfinite (-sNaN)", !isfinite (-sNaN_var)); \
+ check (#FLOAT " isfinite (-sNaN)", !isfinite (minus_sNaN_var)); \
} \
\
feclearexcept(FE_ALL_EXCEPT); \
printf (#FLOAT " isnormal (-sNaN) raised SIGFPE\n"); \
errors++; \
} else { \
- check (#FLOAT " isnormal (-sNaN)", !isnormal (-sNaN_var)); \
+ check (#FLOAT " isnormal (-sNaN)", !isnormal (minus_sNaN_var)); \
} \
\
feclearexcept(FE_ALL_EXCEPT); \
printf (#FLOAT " fpclassify (sNaN) isnormal SIGFPE\n"); \
errors++; \
} else { \
- check (#FLOAT " fpclassify (sNaN)", (fpclassify (sNaN_var)==FP_NAN)); \
+ check (#FLOAT " fpclassify (sNaN)", fpclassify (sNaN_var) == FP_NAN); \
} \
\
feclearexcept(FE_ALL_EXCEPT); \
printf (#FLOAT " fpclassify (-sNaN) raised SIGFPE\n"); \
errors++; \
} else { \
- check (#FLOAT " fpclassify (-sNaN)", (fpclassify (-sNaN_var)==FP_NAN)); \
+ check (#FLOAT " fpclassify (-sNaN)", \
+ fpclassify (minus_sNaN_var) == FP_NAN); \
} \
\
fesetenv(&saved_fenv); /* restore saved fenv */ \