/* Test for NaN that does not need libm.
- Copyright (C) 2007-2009 Free Software Foundation, Inc.
+ Copyright (C) 2007-2011 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
# else
/* Be careful to not do any floating-point operation on x, such as x == x,
because x may be a signaling NaN. */
-# if defined __SUNPRO_C || defined __DECC || (defined __sgi && !defined __GNUC__)
- /* The Sun C 5.0 compilers and the Compaq (ex-DEC) 6.4 compilers don't
+# if defined __TINYC__ || defined __SUNPRO_C || defined __DECC \
+ || (defined __sgi && !defined __GNUC__) || defined __ICC
+ /* The Sun C 5.0, Intel ICC 10.0, and Compaq (ex-DEC) 6.4 compilers don't
recognize the initializers as constant expressions. The latter compiler
also fails when constant-folding 0.0 / 0.0 even when constant-folding is
not required. The SGI MIPSpro C compiler complains about "floating-point
-Infinity, which have the same exponent. */
m.value = x;
if (((m.word[EXPBIT0_WORD] ^ nan.word[EXPBIT0_WORD])
- & (EXP_MASK << EXPBIT0_BIT))
- == 0)
+ & (EXP_MASK << EXPBIT0_BIT))
+ == 0)
return (memcmp (&m.value, &plus_inf, SIZE) != 0
- && memcmp (&m.value, &minus_inf, SIZE) != 0);
+ && memcmp (&m.value, &minus_inf, SIZE) != 0);
else
return 0;
}