rt_gccstream/gcc/testsuite/gcc.c-torture/compile/pr39824.c

27 lines
678 B
C

static const double internalEndianMagic = 7.949928895127363e-275;
static const unsigned char ieee_754_mantissa_mask[] = { 0x00, 0x0F, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF };
static inline int
trio_isnan (double number)
{
int has_mantissa = 0;
unsigned int i;
unsigned char current;
for (i = 0; i < (unsigned int)sizeof(double); i++)
{
current = ((unsigned char *)&number)[(((unsigned char
*)&internalEndianMagic)[7-(i)])];
has_mantissa |= (current & ieee_754_mantissa_mask[i]);
}
return has_mantissa;
}
void
xmlXPathEqualNodeSetFloat(int nodeNr, double v)
{
int i;
for (i=0; i<nodeNr; i++)
if (!trio_isnan(v))
break;
}