modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/pr39824.c (about)

     1  static const double internalEndianMagic = 7.949928895127363e-275;
     2  static const unsigned char ieee_754_mantissa_mask[] = { 0x00, 0x0F, 0xFF, 0xFF,
     3      0xFF, 0xFF, 0xFF, 0xFF };
     4  static inline int 
     5  trio_isnan (double number)
     6  {
     7    int has_mantissa = 0;
     8    unsigned int i;
     9    unsigned char current;
    10    for (i = 0; i < (unsigned int)sizeof(double); i++)
    11      {
    12        current = ((unsigned char *)&number)[(((unsigned char
    13  					      *)&internalEndianMagic)[7-(i)])];
    14        has_mantissa |= (current & ieee_754_mantissa_mask[i]);
    15      }
    16    return has_mantissa;
    17  }
    18  void
    19  xmlXPathEqualNodeSetFloat(int nodeNr, double v)
    20  {
    21    int i;
    22    for (i=0; i<nodeNr; i++)
    23      if (!trio_isnan(v))
    24        break;
    25  }
    26